我有两个简单的脚本,读者和作家:
writer.rb
:
while true
puts "hello!"
$stdout.flush
sleep 1
end
reader.rb
:
while true
puts "I read: #{$stdin.read}!"
sleep 1
end
writer.rb
连续写入标准输出,reader.rb
连续读取标准输入。
现在,如果我这样做:
ruby writer.rb | ruby reader.rb
我希望这会继续打印
I read: hello!
I read: hello!
I read: hello!
每隔一秒。但它只是阻塞而不打印任何东西。我如何让它打印?我以为writer.rb
是缓存输出所以我添加了$stdout.flush
,但这并没有让我到任何地方。