linux應用程序 printf 控制檯有顯示,但無法通過>輸出到文件

通常執行應用程序可以通過在命令後加上>log.txt 將程序打印輸出到文件中。

最近遇到一個問題,寫了一個應用程序在串口命令行中輸出正常,重定向到文件中就沒有內容了。

原因:

  1. printf是一個行緩衝函數,並不會直接輸出到接口。
  2. 板子串口緩衝比文件緩衝小很多,所以很快會刷到串口命令行。
  3. 但是輸出到文件一般超過4K纔會刷緩衝。

解決辦法:

及時調用fflush(stdout); 將標準輸出刷出去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章