プロセスの標準出力をバッファに保存し、FIFOスタイルで読み取った後にバッファを消去したいと思います。
私はstdoutをパイプできることを知っていますが、パイプ/ファイルは大きくなり続け、私がすでに読み込んだデータが含まれます。私は新しいデータが欲しいだけです。
command > named_pipe &
データをリダイレクトする別の組み込み方法(ネットワークソケットのバッファに似ています)はありますか?
答え1
名前付きパイプが問題を解決できない理由を理解できません。この例では、2つのシェルインタフェースを使用し、shell_1
どのシェルがどのI shell_2
/ Oを使用しているかを区別するためにshell_2
。shell_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