刷新stdout
取决于其缓冲行为。可以将缓冲设置为三种模式:(_IOFBF
完全缓冲:等待,直到fflush()
可能),_IOLBF
(行缓冲:换行符触发自动刷新)和_IONBF
(始终使用直接写)。“对这些特性的支持是由实现定义的,并且可能会受到setbuf()
和setvbuf()
功能的影响。” [C99:7.19.3.3]
“在程序启动时,三个文本流是预先定义的,无需显式打开- 标准输入(用于读取常规输入),标准输出(用于写入常规输出)和标准错误(用于写入诊断输出)。最初打开时,标准错误流没有被完全缓冲;标准输入和标准输出流被完全缓冲,当且仅当可以确定该流不引用交互式设备时。” [C99:7.19.3.7]