繁体   English   中英

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

[英]Is is possible to log everything that is printed to the terminal into a text file in C?

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

编辑:为了清楚起见,我希望输出像往常一样继续运行终端,但也要同时打印到文件中。 有几个人在建议bash命令。 这些应何时执行? 程序运行后?

如果您使用的是UNIX类型框,则可以通过tee传递输出它将输出传递到标准输出一个文件:

myProg | tee /tmp/myProg.out

也可以通过标准错误执行相同的操作:

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

当然,这取决于您所使用的外壳,但应该可以在最常见的外壳上使用。

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

IE浏览器

myprogram > myfile.txt

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

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

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

代码示例来自freopen的 c ++参考

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

这将使您能够将标准输出和标准输出都重定向到outputfile

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM