タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

rubyとstdに関するkiyo_hikoのブックマーク (1)

  • rubyで出力のバッファリングをやめる

    rubyで以下のような感じのコードを書きます。 print "xxx" sleep 2 print "yyy" sleep 2 print "zzz" xxxと出てからyyyと出てzzzと出てくるのを期待したりするのですが、このように出力されないで 実際は、しばらく待って一気にxxxyyyzzzと出力されることになります。 これは標準出力する際に、バッファに一時的にためていてある程度たまってから出力しているせいなわけで これを期待するように動かすには、 STDOUT.sync = true print "xxx" sleep 2 print "yyy" sleep 2 print "zzz" のように STDOUT.sync = true を追加すればOKです。 バッファリングされるのは標準出力だけでなく自分で書き込み用に作成したファイルへの書き込みでも同様な感じになります。 動作ログをフ

    kiyo_hiko
    kiyo_hiko 2016/05/13
    出力のバッファリングを止めるのにf = File.open(fn, 'w') do; f.sync = true; endする話。
  • 1