通常执行应用程序可以通过在命令后加上>log.txt 将程序打印输出到文件中。
最近遇到一个问题,写了一个应用程序在串口命令行中输出正常,重定向到文件中就没有内容了。
原因:
- printf是一个行缓冲函数,并不会直接输出到接口。
- 板子串口缓冲比文件缓冲小很多,所以很快会刷到串口命令行。
- 但是输出到文件一般超过4K才会刷缓冲。
解决办法:
及时调用fflush(stdout); 将标准输出刷出去。
通常执行应用程序可以通过在命令后加上>log.txt 将程序打印输出到文件中。
最近遇到一个问题,写了一个应用程序在串口命令行中输出正常,重定向到文件中就没有内容了。
原因:
解决办法:
及时调用fflush(stdout); 将标准输出刷出去。