Unix command > stdbuf

update 2014-09-06
広告

プログラムの標準出力(printf)の結果を、リダイレクトしてファイルに出力するときに、「なかなかファイルに出力されない」という現象が生じる場合があります。これは、パイプやteeコマンドなど、様々な箇所で標準出力されたテキストデータをバッファリングしているためです。

stdbufコマンドを使ってプログラムを実行すると、このバッファリングを調整できます。 一行ごとに、すぐに出力してほしい場合(ラインバッファリングする場合)は、以下のようにプログラム(a.out)を実行します。

$ sudo stdbuf -oL -eL a.out | tee log.txt
全くバッファリングせずに、とにかくすぐに出力する場合は、以下のように実行します。
$ sudo stdbuf -o0 -e0 a.out | tee log.txt
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system