1.次のコマンドを実行して、名前付きパイプpipe_in
およびpipe_out
を作成します。
$ mkfifo pipe_in
$ mkfifo pipe_out
2. pipe_in
をpipe_out
に接続します。
TERM0: $ tail -f pipe_in > pipe_out
3.文字列hello world!
をpipe_in
に送信し、pipe_out
に到着することを期待します。
TERM1: $ tail -f pipe_out
TERM2: $ echo "hello world!" > pipe_in
pipe_out
でコマンドを強制終了した場合にのみ、2.
に到達する文字列を確認できます。バッファリングの問題のようですので、上記のすべてのコマンドをstdbuf -i0 -e0 -o0 <command>
で実行することにしましたが、機能しませんでした。
tail
は、ファイル/ストリームの最後のn行のみを出力します。 まだ行を生成している間、最後のnがどれであるかを知ることはできません。
cat
のようなものを試しましたか?