hakeの日記

Windows環境でプログラミングの勉強をしています。

アプリが起動しないこと

rubyのソフトを作っていてアイコンをクリックしてもアイコンが爆発して砂時計が表示されるだけでアプリケーションが起動しないことがありました。ターミナルからの起動では問題は発生しませんでした。いろいろ試した結果いくつかのsystem()メソッドをコメントアウトしたら問題が解決しました。
どうやらsystemの中でコマンドが実行された結果、標準出力(または標準エラー出力)に文字を出力される記述が(プログラムの最初に)あると発生する模様。
試しにRuby/Qte何もしないプログラムで実験したところinclude文の次に

system("echo abcdefg")

を2行追加すると、手持ちのSL-C860ではかなりの頻度で起動しなくなる現象が再現しました、SL-C3000では頻度は落ちるもののやはり現象は発生。原因は不明。
systemメソッドはファイルの操作に都合が良いので使用しているけど、Rubyのクラスの機能で実現した方が良いのかもしれない。