是否可以将打印到终端的所有内容记录到C中的文本文件中?

时间:2012-09-07 03:53:04

标签: c terminal printf

我有大量的printf语句,我想将它们全部写入文本文件。我意识到我可以在每一个之后添加fprintf语句,但是有更好的方法,比如函数,还是我应该编写自己的函数?我觉得这可能是一个标准程序,我只是不知道它叫什么,所以很难通过谷歌搜索找到答案。

编辑:为了清楚起见,我希望输出像往常一样继续传输到终端,但也可以同时打印到文件中。有几个人建议使用bash命令。什么时候应该执行?程序运行后?

4 个答案:

答案 0 :(得分:4)

如果您使用的是UNIX类型框,则可以通过tee管道输出,这会将其传递给标准输出文件:

myProg | tee /tmp/myProg.out

还有一些方法可以对标准错误做同样的事情:

( myProg 2>&1) | tee /tmp/myProg.out_and_err

这当然取决于您使用的任何外壳,但这应该适用于最常见的外壳。

答案 1 :(得分:3)

运行程序时,使用> bash运算符将程序输出重定向到文本文件:

IE

myprogram > myfile.txt

这会将通常使用printf输出到屏幕的所有内容保存到名为myfile.txt的文件中。

答案 2 :(得分:2)

如何将标准输出重定向到文件,例如

int main ()
{
  freopen ("myfile.txt","w",stdout);
  printf ("This sentence is redirected to a file.");
  fclose (stdout);
  return 0;
}

代码示例来自freopen

的c ++参考

答案 3 :(得分:0)

您可以执行:./executable > outputfile 2>&1./executable &> outputfile

这使您可以将标准输出和标准输出重定向到outputfile