stderr 默认使用什么类型的缓冲(在 Linux 中)?

stderr 默认使用什么类型的缓冲(在 Linux 中)?

Linux 中标准错误流默认使用什么类型的缓冲?

答案1

从联机帮助页来看标准错误(3)

流 stderr 是无缓冲的。当流 stdout 指向终端时,它是行缓冲的。在调用 fflush(3) 或 exit(3) 或打印换行符之前,部分行不会出现。这可能会产生意外的结果,特别是在调试输出时。 ...请注意,如果 stdin 与终端关联,则终端驱动程序中也可能存在输入缓冲,与 stdio 缓冲完全无关。

也可以看看: 是什么阻止了 stdout/stderr 交错?

相关内容