在Linux下的開發中,printf打印調試信息默認輸出到標準輸出 stdout (即屏幕/終端)中。我們也可以使用輸出重定向技術輸出到指定文件中,輸出重定向即是把原本要輸出到屏幕的信息寫入到指定文件中。
比如:
但是有時候既要實時查看打印調試信息,又要把這些調試信息保存下來發給他人分析。
下面分享能達到這個需求的兩種方法:
1、使用script工具
script工具是一個非常使用的工具,可以把輸出到終端的信息記錄下來。使用方法如:
(1)輸入 script log.txt命令開始保存終端輸出的信息 ,其中log.txt為需要寫入的log文件,可隨意命名。
(2)輸入exit退出保存。
演示如下:
之前我只知道有script 這樣一個工具,而且經常在Ubuntu上使用。奈何開發板里的系統沒這個工具,所以很長的一段時間我都是等程序跑完后我手動從終端拷貝全部信息到文本中保存。。。
剛開始程序跑得不久,日志信息還不是很多,還可以接受。后面程序跑久了,日志信息越來越多,再這么手動拷貝實在受不了。
所以找了另外的方法:使用tee工具。
2、使用tee工具
tee工具用于將數據重定向到文件,另一方面還可以提供一份重定向數據的副本作為后續命令的stdin。簡單的說就是把數據重定向到給定文件和屏幕上。
存在緩存機制,每1024個字節將輸出一次。若從管道接收輸入數據,應該是緩沖區滿,才將數據轉存到指定的文件中。若文件內容不到1024個字節,則接收完從標準輸入設備讀入的數據后,將刷新一次緩沖區,并轉存數據到指定文件。
演示如下:
可見,使用tee工具輸入到文本里的內容比script工具輸入到文本里的內容還要干凈,就是程序打印輸出的東西。
以上就是本次分享的兩個實用小工具的使用,希望大家喜歡~
責任編輯:haq
-
Linux
+關注
關注
87文章
11345瀏覽量
210402 -
調試
+關注
關注
7文章
589瀏覽量
34064 -
終端
+關注
關注
1文章
1155瀏覽量
30004
發布評論請先 登錄
相關推薦
如何利用串口輸出printf的打印信息
超級終端無法輸出調試信息且無法進入命令行cmd是什么原因呀
嵌入式開發為什么需要輸出調試信息?
Linux中輸出信息的同時把信息記錄到文件中
嵌入式Linux中printf重定向到串口
![嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>中</b>printf重定向<b class='flag-5'>到</b>串口](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Linux內核動態輸出調試
![<b class='flag-5'>Linux</b>內核動態<b class='flag-5'>輸出調試</b>](https://file1.elecfans.com/web2/M00/89/13/wKgaomR4Ra-AbTCcAAAbpp9i1oo277.jpg)
評論