アプリケーション用の独立した標準出力

アプリケーション用の独立した標準出力

いくつかのコマンドライン引数を受け入れてから、いくつかのテキストを端末に印刷してからファイルにデータの書き込みを開始するアプリケーションがあります。これには、書き込むファイル名を定義するために使用できるパラメータがあります-o some-file-name.bin

このデータをリアルタイムで処理するために別のアプリケーションを使用したいので、出力を-o -指定して別のツールにパイプして、プログラムがそのデータを標準出力に出力するようにします。しかし、残念ながら、プログラムは自分が標準出力に書き込んでいることに気づくほどスマートではなく、人間が読めるテキストを標準出力に書き込むのをやめるべきです(これはバイナリデータがめちゃくちゃになるからです)。

したがって、通常、ツールはstdout(私は気にしません)にテキストを書き込み、ファイルにデータを書き込みます。 stdoutに書き込まれるすべてのテキストを無視し、代わりにstdoutにデータを書き込んで他のツールに転送できるようにしたいと思います。ただし、を使用して実行すると、-o -標準出力に(バイナリ)データと無駄なテキストが書き込まれ、データが破損します。

代わりに配管しようとしましたが、-o >( my_other_tool )これが原因ですCouldn't open output: /dev/fd/63: /dev/fd/63: No such file or directory

ツールを再コンパイルし、不要なprintf呼び出しをすべて削除する以外に、生のstdoutを無視し、ファイルに書き込んだデータをstdoutに送信する他の方法はありますか?

編集:役に立つなら、私はそれについて話していますnsntrace

ベストアンサー1

おすすめ記事