如何将控制台输出重定向到文件?

时间:2013-11-22 22:32:53

标签: c shell io-redirection

我是c的新手。 是否有任何简单的方法可以使用一些常规命令行\ linkage参数将所有控制台的输出(printfs等)重定向到文件(无需修改任何原始代码)?

如果是,那么程序是什么?

4 个答案:

答案 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

如果你真的想要了解更多关于命令行必须提供的(很棒的)功能,我真的建议你阅读这本书(并做大量的编程:))

http://linuxcommand.org/

享受!

答案 3 :(得分:2)

在Unix shell中,你通常可以executable > file 2> &1,这意味着“将标准输出重定向到文件并将错误输出转换为标准输出”