【发布时间】:2014-02-14 05:59:00
【问题描述】:
我正在学习ruby popen,我对一个简单的程序感兴趣:
pipe = IO.popen("-","w+")
if pipe
pipe.puts "Get a job!"
STDERR.puts "Child says: #{pipe.gets.chomp}"
else
STDERR.puts "Dad says: #{gets.chomp}"
puts "OK"
end
然后产品看起来像这样:
Dad says: Get a job!
Child says: OK
但是,当我通过删除 STDOUT 来更新代码时:
pipe = IO.popen("-","w+")
if pipe
pipe.puts "Get a job!"
puts "Child says: #{pipe.gets.chomp}"
else
puts "Dad says: #{gets.chomp}"
puts "OK"
end
然后结果变成这样:
Child says: Dad says: Get a job!
它错过了“OK”!那么,为什么?
【问题讨论】: