リーダーとライターの 2 つの単純なスクリプトがあります。
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
stdout に継続的に書き込みreader.rb
、stdin から継続的に読み取ります。
今私がこれを行うと:
ruby writer.rb | ruby reader.rb
私はこれが印刷を続けることを期待します
I read: hello!
I read: hello!
I read: hello!
1 秒間隔で。しかし、何も印刷せずにブロックするだけです。印刷するにはどうすればよいですか?writer.rb
出力をキャッシュしていると思ったので を追加しまし$stdout.flush
たが、それでもうまくいきませんでした。