読み込み時に自動的にクリアされるバッファに標準出力をキャプチャする方法はありますか?

読み込み時に自動的にクリアされるバッファに標準出力をキャプチャする方法はありますか?

プロセスの標準出力をバッファに保存し、FIFOスタイルで読み取った後にバッファを消去したいと思います。

私はstdoutをパイプできることを知っていますが、パイプ/ファイルは大きくなり続け、私がすでに読み込んだデータが含まれます。私は新しいデータが欲しいだけです。

command > named_pipe &

データをリダイレクトする別の組み込み方法(ネットワークソケットのバッファに似ています)はありますか?

答え1

名前付きパイプが問題を解決できない理由を理解できません。この例では、2つのシェルインタフェースを使用し、shell_1どのシェルがどのI shell_2/ Oを使用しているかを区別するためにshell_2shell_1

$ mkfifo my_pipe
(shell_1) $ echo hi > my_pipe # Blocks waiting for a reader
    (shell_2) $ cat my_pipe # Unblocks shell_1
    hi
    (shell_2) $ cat my_pipe # blocks -- does not print "hi" again
(shell_1) $ echo bye > my_pipe # Unblocks shell_2
    bye # Printed by shell_2

関連情報