Next: timeout invocation, Previous: nohup invocation, Up: Modified command invocation [Contents][Index]
stdbuf
: 入出力ストリームのバッファリングを変更して、コマンドを実行するstdbuf
を使用すると、プログラムと結びついている
3 種類の標準入出力ストリームに対して、そのバッファリング動作を変更することができる。
書式:
stdbuf option… command
command は、次の条件を満たすプログラムの名前で始まっていなければならない。
FILE
ストリームを使用している (注意: プログラム dd
や
cat
は、これを使用していない)。
tee
は、この部類に入らない)。
後に続く引数があれば、command に引数として渡される。
このプログラムでは以下のオプションが使用できる。参照: Common options.
標準入力ストリームのバッファリングを調整する。
標準出力ストリームのバッファリングを調整する。
標準エラーストリームのバッファリングを調整する。
mode には、以下のものを指定できる。
ストリームを行単位のバッファ・モードにする。このモードでは、改行が出力されることになるか、 あるいは、端末デバイスに結びついているストリームから入力が読み込まれるまで、データを溜めておく。 このオプションは、標準入力に対しては無効である。
選択したストリームのバッファリングを無効にする。
このモードでは、データは即座に出力される。また、要求された量のデータしか入力から読み込まない。
入力と出力で動作が違うことに気をつけていただきたい。
なお、入力のバッファリングを無効にしても、ストリーム入力関数の応答性やブロッキング動作に影響することはない。
たとえば、fread
は、要求した量より少ないデータを、下層で動いている
read
が返してきても、EOF
が来るか、エラーが起きるまで、
やはりブロッキングを行うのである。
バッファ一杯モード (fully buffered mode) で使用するバッファのサイズを指定する。 size は、整数であり、 以下に挙げるような何倍かを示す接尾辞を後ろに付けることもできる。接尾辞だけ指定してもよい (訳注: その場合は、1 が前にあるものと見なされる)。
‘KB’ => 1000 (KiloBytes) ‘K’ => 1024 (KibiBytes) ‘MB’ => 1000*1000 (MegaBytes) ‘M’ => 1024*1024 (MebiBytes) ‘GB’ => 1000*1000*1000 (GigaBytes) ‘G’ => 1024*1024*1024 (GibiBytes)
‘T’, ‘P’, ‘E’, ‘Z’, ‘Y’ についても同様。
stdbuf
がインストールされるのは、Executable and Linkable Format (ELF)
を使用し、constructor
アトリビュートをサポートしているプラットフォームだけである。
従って、移植を考慮したスクリプトでは、stdbuf
が存在することを当てにしない方がよい。
終了ステータス:
125: stdbuf
そのものの実行に失敗した。
126: command は見つかったが、起動できなかった。
127: command が見つからなかった。
それ以外は、command の終了ステータス。