私はLinuxで10ミリ秒ごとにデータをエクスポートするコマンドラインツールを実行しています。データを視覚化するために別のアプリケーションに渡しましょう。たとえば、stdinから10個の着信メッセージをキャッシュし、それをstdoutフラッシュでビジュアルアプリケーションにリリースしたいとします。たとえば、
10msApp | cache --size 10 | visualizer
パイプラインでstdinをキャッシュできるアプリケーションはありますか?
ベストアンサー1
多くのアプリケーション、標準ライブラリ、およびフレームワークは、パイプから読み取ったりパイプに書き込んだりすると、ある程度バッファリングされているため、汎用キャッシュのみが必要な場合はすでに提供されています。
ただし、これが適切でない場合は、stdbuf
GNU coreutilsがそれを提供し(したがって、ほぼすべてのLinuxボックスに存在する必要があります)、トリックを実行できます。ただし、行数ではなくデータサイズに基づいてこれを行います。たとえば、
stdbuf -o 1K 10msApp | visualizer
入力もバッファリングされている場合は、visualizer
実行したい場合がありますstdbuf -i
。
stdbuf
ラインバッファリングもありますが、-o L
私が知っている限り、バッファのライン数を調整することはできません。