stdoutデータをキャッシュしてstdoutに渡す

stdoutデータをキャッシュしてstdoutに渡す

私はLinuxで10ミリ秒ごとにデータをエクスポートするコマンドラインツールを実行しています。データを視覚化するために別のアプリケーションに渡しましょう。たとえば、stdinから10個の着信メッセージをキャッシュし、それをstdoutフラッシュでビジュアルアプリケーションにリリースしたいとします。たとえば、

10msApp | cache --size 10 | visualizer

パイプラインでstdinをキャッシュできるアプリケーションはありますか?

ベストアンサー1

多くのアプリケーション、標準ライブラリ、およびフレームワークは、パイプから読み取ったりパイプに書き込んだりすると、ある程度バッファリングされているため、汎用キャッシュのみが必要な場合はすでに提供されています。

ただし、これが適切でない場合は、stdbufGNU coreutilsがそれを提供し(したがって、ほぼすべてのLinuxボックスに存在する必要があります)、トリックを実行できます。ただし、行数ではなくデータサイズに基づいてこれを行います。たとえば、

stdbuf -o 1K 10msApp | visualizer

入力もバッファリングされている場合は、visualizer実行したい場合がありますstdbuf -i

stdbufラインバッファリングもありますが、-o L私が知っている限り、バッファのライン数を調整することはできません。

おすすめ記事