hakeの日記

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

system関数の挙動?

昨日の件、調べてみたら次のことがわかりました

  • wgetを実行しているsystem()をバッククオートで囲う形に書き換えたら動作した
  • セルフコンパイルしたruby1.8.6-p36では元のソースでも動作した

dipusさんトコのrubyはたぶんクロスコンパイル環境で作ったものだと思いますが、セルフコンパイルしたものと微妙に挙動が違うってことなのでしょうか?
psでみるとスクリプトのプロセスが複数起動していました。以前自分のアプリでもトラブルがあってそのときにsystem()は別プロセスで動作するって勉強した記憶がありますがそのことと今回のことは関係あるのかな?

追記

dipusさんトコで1.8.6-p36-2が公開されました、感謝感謝です。
これだと問題なさそうなので1.8.6をお使いの方は入れ替えをおススメですね。
http://www.focv.com/ipkg/


なるほど--enable-pthreadですか、以前focvのreadmeを参考にしてこのオプションを入れてコンパイルしたのですが違いがわからなかったので、その後は外してました。今でも意味がよく解ってませんが(^^ゞ