EN JA
LIBSTDBUF(3)
LIBSTDBUF(3) FreeBSD Library Functions Manual LIBSTDBUF(3)

名称

libstdbuf標準のストリームの最初のバッファを変更するプレロードされたライブラリ

解説

libstdbuf ライブラリは、標準入力、標準出力と標準エラーのストリームの最初のバッファを変更するために、 LD_PRELOAD 環境変数でプレロードされるように作られています。

利用者は、このライブラリを手動でロードして、設定することができますが、適切な環境変数があるコマンドを実行するために、ユーティリティ stdbuf(1) を使用することができます。

環境変数

次の環境変数 (値は、下記に定義されます) を通して独立して各ストリームを、設定することができます:
_STDBUF_I
標準入力ストリームのための最初のバッファ定義
_STDBUF_O
標準出力ストリームのための最初のバッファ定義
_STDBUF_E
標準エラーストリームのための最初のバッファ定義

各変数は、次の値の 1 つを取ります:

“0”
バッファリングされません
“L”
行単位のバッファリング
“B”
デフォルトのバッファのサイズで完全にバッファリングされます
size
size バイト (接尾辞 'k', 'M' and 'G' が受け付けられます) のバッファで完全にバッファリングされます

使用例

次の例で、 awk(1) コマンドの stdout ストリームは、端末を参照しないので、デフォルトで完全にバッファリングされます。 libstdbuf は、行単位でバッファリングされるように強制して使用されるので、 vmstat(8) の出力は、十分にバッファが満たされないなら、ストールしません。

# vmstat 1 | LD_PRELOAD=/usr/lib/libstdbuf.so \ 
    STDBUF_1=L awk '$2 > 1 || $3 > 1' | cat -n

また、これを行う単純な方法については、 stdbuf(1) のマニュアルページを参照してください。

歴史

libstdbuf ライブラリは、 FreeBSD 8.4 ではじめて登場しました。

作者

libstdbuf コマンドのオリジナルの考えは、GNU coreutils で、それを実装した Padraig Brady に由来します。 Jeremie Le Hen は、 FreeBSD でそれを実装しました。
April 28, 2012 FreeBSD