相信對於很多開發來說,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就會發生未知錯誤。