両方のプログラムの標準出力リダイレクト

両方のプログラムの標準出力リダイレクト

私はC ++コード(prog2)でメモリチェックツール(prog1)を実行していますが、どちらのツールも非常に詳細な出力を提供します。一部のエラーを追跡するには、この出力をファイルに保存する必要があります。

標準出力をファイルにリダイレクトしてみました。

prog1 prog2 > outfile.txt

しかし、これはprog2の出力を含むファイルを提供しますが、prog1の出力はまだ端末に送信されます。

どちらの出力もファイルに移動するように指定する方法を知っている人はいますか?良いです(prog1 prog2) > outfile.txtか?

ベストアンサー1

おそらく、prog1出力は標準エラーに書き込まれます。両方の出力をファイルにリダイレクトできます。

prog1 prog2 > outfile.txt 2>&1

または、次の方法で出力を分割できます。

prog1 prog2 > outfile.txt 2> errors.txt

個人を選ばないプログラム'出力、出力チャンネルを切り離します。バラよりシェルの制御およびリダイレクト演算子は何ですか?もっと学ぶ。

文書を見ると、prog1出力を名前付きファイルに保存するように指示するオプションがあります。たとえばstrace

strace -o strace.txt prog2 > outfile.txt

strace出力を保存し、strace.txtすべてを標準出力に書き込みますoutfile.txt

おすすめ記事