[英]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.