我正在使用open4
gem 并且在从生成的进程标准输出中读取时遇到问题。我有一个红宝石程序,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
当我运行第二个程序时:
$ ruby test2.rb
它只是永远坐在那里而不打印任何东西。为什么会发生这种情况,我能做些什么来阻止它?