私はopen4
宝石を使用していますが、生成されたプロセスの標準出力からの読み取りに問題があります。私はルビープログラムを持っていますtest1.rb
:
print 'hi.' # 3 characters
$stdin.read(1) # block
そして、同じディレクトリにある別の ruby プログラムtest2.rb
:
require 'open4'
pid, stdin, stdout, stderr = Open4.popen4 'ruby test1.rb'
p stdout.read(2) # 2 characters
2 番目のプログラムを実行すると:
$ ruby test2.rb
何も印刷せずに永遠にそこに座っています。なぜこれが起こるのですか?それを止めるにはどうすればよいですか?