我是c的新手。 是否有任何简单的方法可以使用一些常规命令行\ linkage参数将所有控制台的输出(printfs等)重定向到文件(无需修改任何原始代码)?
如果是,那么程序是什么?
答案 0 :(得分:29)
使用shell输出重定向
your-command > outputfile.txt
标准错误仍将输出到控制台。如果您不想这样,请使用:
your-command > outputfile.txt 2>&1
或
your-command &> outputfile.txt
您还应该查看tee
实用程序,它可以将其重定向到两个位置。
答案 1 :(得分:3)
在unices上,你也可以这样做:
your-command | tee output file.txt
这样你就可以看到输出并能够与程序交互,同时得到标准输出的硬拷贝(但不是标准输入,所以它不像电传打字会话)。
答案 2 :(得分:3)
如上所述,您可以使用>运算符将程序的输出重定向到文件,如下所示:
./program > out_file
此外,您可以将数据附加到现有文件(或者如果它已经通过使用>>运算符退出,则创建它:
./program >> out_file
如果你真的想要了解更多关于命令行必须提供的(很棒的)功能,我真的建议你阅读这本书(并做大量的编程:))
享受!
答案 3 :(得分:2)
在Unix shell中,你通常可以executable > file 2> &1
,这意味着“将标准输出重定向到文件并将错误输出转换为标准输出”