我正在 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
这并不区分个人程式' 输出,它分隔输出通道。看shell 的控制和重定向运算符是什么?了解详情。
如果您查看prog1
的文档,您可能会找到一个选项来告诉它将其输出存储在命名文件中。例如,strace
与
strace -o strace.txt prog2 > outfile.txt
会将strace
的输出存储在 中strace.txt
,并将所有内容写入标准输出中outfile.txt
。