相信对于很多开发来说,log打印是一个顺手的动作,也是调试程序的基础;
int printf(const char * __restrict, ...) __printflike(1, 2);
结果今天就遇到 printf 不能打印信息。表示有点惊掉了下巴。。。
真相在这里:
(http://bbs.csdn.net/topics/300006379 论坛中4楼这位大哥真相了。果然加了\n就可以!)
大哥回答原话:
我记得printf是行缓冲的。
用fflush(stdout);或者每个printf打印串都以\n结束。
好像printf不宜做信号处理函数,因为它不是线程安全的。
要是信号来之前刚好进程执行到printf就会发生未知错误。