没有fflush输出不打印(stdout)

dar*_*sky 5 c io stdout fflush

我不明白为什么有时候我需要使用fflush(),有时候不需要.

我的程序目前是segfaulting,我正在用print语句调试它.程序段错误时,不会stdout自动刷新缓冲区?

cni*_*tar 9

我不明白为什么有时候我需要使用fflush(),有时候不需要.

有时stdio缓冲区被刷新有时它们不是.例如,在打印的东西中简单地包括"\n"通常会刷新它(因为stdout当连接到终端时默认是行缓冲的).

程序段错误时,stdout是否会自动刷新缓冲区?

Stdio缓冲区被刷新exit.当信号(例如SIGSEGV)杀死进程时,exit不会被调用.在不刷新stdio缓冲区的情况下退出进程的另一种方法是使用特定于Unix的调用_exit.