私はC++コード(prog2)でメモリチェックツール(prog1)を実行しています。どちらの方法でも、膨大で詳細な出力が得られます。いくつかのバグを追跡するために、この出力をファイルに保存する必要があります。
Stdoutをファイルにリダイレクトしてみました:
prog1 prog2 > outfile.txt
しかし、それによってprog2の出力を含むファイルが得られますが、prog1の出力はまだターミナルに送られます。
誰もが両方の出力をファイルに移動するように指定する方法を知っていますか?お気に入り (prog1 prog2) > outfile.txt
?
prog1
が標準エラーに出力を書き込んでいる可能性が十分にあります。両方の出力を単一のファイルにリダイレクトできます
prog1 prog2 > outfile.txt 2>&1
またはあなたはで出力を分割することができます
prog1 prog2 > outfile.txt 2> errors.txt
これは個々のprograms '出力を分離するのではなく、出力チャネルを分離します。詳細は シェルの制御演算子とリダイレクト演算子は何ですか? を参照してください。
prog1
のドキュメントを見ると、代わりに出力を名前付きファイルに保存するように指示するオプションが見つかるかもしれません。たとえば、strace
を使用すると、
strace -o strace.txt prog2 > outfile.txt
strace
の出力をstrace.txt
に格納し、すべてを標準出力にoutfile.txt
に書き込みます。