一个异常终止的程序可能没有机会来清空缓冲区,所以该程序生成的输出可能位于内存中的某个位置,但却永远不会被写出来。在某些系统上,这些无法被写出的数据肯能长达好几页,对于试图调试这类程序的编程者而言,这种丢失输出的情况经常会误导他们,应为它会造成这样一种印象,程序发生失败的时刻要比实际上运行失败的真正时刻要早得多解决方案就是在调试时候强制不允许对输出进行缓冲,要做到这点,不同的系统有不同的做法,这些做法虽然存在细微的差别,但是大致如下:
setbuf(stdout,(char *)0);
这个语句必须在任何输出被写入到stdout(包括对printf函数的调用)之前执行,该语句最恰当的位置就是作为main函数的第一个语句