码迷,mamicode.com
首页 > 系统相关 > 详细

[Linux应用]Linux应用程序输出数据重定向到文件中

时间:2017-09-24 14:34:24      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:char   文件   输出   span   syn   code   hand   解决   目的   

转自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应用程序输出数据重定向到文件中

标签:char   文件   输出   span   syn   code   hand   解决   目的   

原文地址:http://www.cnblogs.com/aaronLinux/p/7587040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!