应用程序输出一般分为以下几种情况:
1)输出到日志文件(一般大型应用程序便于分析、调试代码)
2)输出到控制台终端(一般以小型程序为主,如hello)
由于缓冲模式原因:
1)全缓冲模式,一般情况下,只有读写普通磁盘文件采用。
2)行缓冲模式,缓冲区大小不确定,当I/O操作遇到换行符'\n'时结束。标准输入stdin,标准输出stdout采用。
3)无缓冲,缓冲区大小为0,所有I/O立刻执行。标准错误stderr采用。
stdin,stdout,stderr在shell重定向用的相当的多,分别对应0,1,2。
------------------------------------------------------------------------------------------------------------
针对控制台输出,因怕缓冲区影响打印结果,一般打印语句使用为:fprintf(stderr,"%s",str);形式。
所以重定向需针对标准错误进行处进。
-----------------------------------------------------------------------------------------------------------
引用:http://www.myexception.cn/linux-unix/1615328.html
命令类似:ls -trl >result.txt 2>&1
实践代码片段:
./caparse ${FILE} >>${RESULT_TXT} 2>&1