在Linux下的開(kāi)發(fā)中,printf打印調(diào)試信息默認(rèn)輸出到標(biāo)準(zhǔn)輸出 stdout (即屏幕/終端)中。我們也可以使用輸出重定向技術(shù)輸出到指定文件中,輸出重定向即是把原本要輸出到屏幕的信息寫(xiě)入到指定文件中。
比如:

但是有時(shí)候既要實(shí)時(shí)查看打印調(diào)試信息,又要把這些調(diào)試信息保存下來(lái)發(fā)給他人分析。
下面分享能達(dá)到這個(gè)需求的兩種方法:
1、使用script工具
script工具是一個(gè)非常使用的工具,可以把輸出到終端的信息記錄下來(lái)。使用方法如:
(1)輸入 script log.txt命令開(kāi)始保存終端輸出的信息 ,其中l(wèi)og.txt為需要寫(xiě)入的log文件,可隨意命名。
(2)輸入exit退出保存。
演示如下:
之前我只知道有script 這樣一個(gè)工具,而且經(jīng)常在Ubuntu上使用。奈何開(kāi)發(fā)板里的系統(tǒng)沒(méi)這個(gè)工具,所以很長(zhǎng)的一段時(shí)間我都是等程序跑完后我手動(dòng)從終端拷貝全部信息到文本中保存。。。
剛開(kāi)始程序跑得不久,日志信息還不是很多,還可以接受。后面程序跑久了,日志信息越來(lái)越多,再這么手動(dòng)拷貝實(shí)在受不了。
所以找了另外的方法:使用tee工具。
2、使用tee工具
tee工具用于將數(shù)據(jù)重定向到文件,另一方面還可以提供一份重定向數(shù)據(jù)的副本作為后續(xù)命令的stdin。簡(jiǎn)單的說(shuō)就是把數(shù)據(jù)重定向到給定文件和屏幕上。
存在緩存機(jī)制,每1024個(gè)字節(jié)將輸出一次。若從管道接收輸入數(shù)據(jù),應(yīng)該是緩沖區(qū)滿,才將數(shù)據(jù)轉(zhuǎn)存到指定的文件中。若文件內(nèi)容不到1024個(gè)字節(jié),則接收完從標(biāo)準(zhǔn)輸入設(shè)備讀入的數(shù)據(jù)后,將刷新一次緩沖區(qū),并轉(zhuǎn)存數(shù)據(jù)到指定文件。
演示如下:
可見(jiàn),使用tee工具輸入到文本里的內(nèi)容比script工具輸入到文本里的內(nèi)容還要干凈,就是程序打印輸出的東西。
以上就是本次分享的兩個(gè)實(shí)用小工具的使用,希望大家喜歡~
責(zé)任編輯:haq
-
Linux
+關(guān)注
關(guān)注
88文章
11622瀏覽量
217812 -
調(diào)試
+關(guān)注
關(guān)注
7文章
623瀏覽量
35371 -
終端
+關(guān)注
關(guān)注
1文章
1238瀏覽量
31486
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式開(kāi)發(fā)輸出調(diào)試信息的幾種方法
請(qǐng)問(wèn)怎么輸出調(diào)試消息到IDE?
如何利用串口輸出printf的打印信息
怎么實(shí)現(xiàn)stm32串口2來(lái)輸出調(diào)試信息?
有哪幾種方法可以實(shí)現(xiàn)STM32輸出調(diào)試信息呢
怎樣使用STM32CubeMX串口輸出調(diào)試信息呢
嵌入式設(shè)備是怎樣通過(guò)semihost機(jī)制輸出調(diào)試信息到調(diào)試主機(jī)的
超級(jí)終端無(wú)法輸出調(diào)試信息且無(wú)法進(jìn)入命令行cmd是什么原因呀
嵌入式開(kāi)發(fā)為什么需要輸出調(diào)試信息?
Linux中輸出信息的同時(shí)把信息記錄到文件中
嵌入式Linux中printf重定向到串口
單片機(jī)沒(méi)有串口時(shí)如何打印調(diào)試信息
APM飛控固件的兩種輸出調(diào)試信息的方法
Linux內(nèi)核動(dòng)態(tài)輸出調(diào)試

Linux開(kāi)發(fā)中如何同時(shí)輸出調(diào)試信息到終端及文件
評(píng)論