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