1

默认情况下,STDOUT 是无缓冲的吗?如果不是,它的默认缓冲类型是什么

谢谢

4

2 回答 2

5

您没有提供语言,但假设您使用的是 C 的 stdio 函数(fopen()等)或使用这些函数的语言(出于可移植性原因,大多数都这样做):

它取决于底层的 C 运行时库。

大多数库会尝试检测 STDOUT 是否连接到终端,如果是则避免缓冲,如果没有则执行块缓冲(例如,我的 Linux 系统一次缓冲 8Kb)。

于 2010-12-29T07:08:15.050 回答
1

简短回答:默认情况下,STDOUT 通常是无缓冲的。如果这对您来说是个问题,有fflush(stdout);很少需要

于 2010-12-29T07:11:44.590 回答