[Linux应用]Linux应用程序输出数据重定向到文件中
Posted aaronGao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Linux应用]Linux应用程序输出数据重定向到文件中相关的知识,希望对你有一定的参考价值。
转自:http://blog.chinaunix.net/uid-20680966-id-4698387.html
目的是要让程序的printf的打印能重定向到某个文本中,ctrl+c强制退出后查看文本,方便调试。
运行方式:
a. out程序正常运行是会打印一些字符的
a.out > 1.txt 2>&1
把stdout与stderr都重定向到1.txt文件中去,结果发现运行过程中1.txt一直为空,调试发现如果a.out正常结束退出1.txt数据就正常,
ctrl+c强制退出程序则1.txt无数据,想到是缓存的原因,没有写到存储中。
但是在程序中加sync()函数没有效果,
解决方法:
比如某个时刻我要ctrl+c退出程序看1.txt内容,则程序中加入对SIGINT的检测,加exit()函数
void handle_sig(int num) { printf( "%s\n", __func__ ); exit(1); } int main( int argc, char **argv ) { signal(SIGINT, handle_sig); //....................... }
更好的方法就是把printf替换成写log的函数,直接写文本,不用重定向。
作者:帅得不敢出门 程序员群:31843264
以上是关于[Linux应用]Linux应用程序输出数据重定向到文件中的主要内容,如果未能解决你的问题,请参考以下文章
Linux之Shell编程(12)--Shell输入/输出重定向实例演示