Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
默认情况下,STDOUT 是无缓冲的吗?如果不是,它的默认缓冲类型是什么
谢谢
您没有提供语言,但假设您使用的是 C 的 stdio 函数(fopen()等)或使用这些函数的语言(出于可移植性原因,大多数都这样做):
fopen()
它取决于底层的 C 运行时库。
大多数库会尝试检测 STDOUT 是否连接到终端,如果是则避免缓冲,如果没有则执行块缓冲(例如,我的 Linux 系统一次缓冲 8Kb)。
简短回答:默认情况下,STDOUT 通常是无缓冲的。如果这对您来说是个问题,有fflush(stdout);但很少需要
fflush(stdout);