簡體   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