是否需要手动请求缓冲

  • 本文关键字:请求 缓冲 是否 c
  • 更新时间 :
  • 英文 :


打开FILE流以调整缓冲时,是否需要调用setbuf()setvbuf()等函数
I/O缓冲不是自动处理的吗?

否,缓冲是自动处理的,但可能不是您想要或需要的方式

您可能希望在每次写入时刷新,只在换行时刷新,也只在满缓冲区时刷新,而默认值对于您的情况是错误的。

或者你可能想要一个更大的缓冲区来提高效率。

在所有这些情况下,请调整默认值
不过,总的来说,违约是合理的,可以不受影响。

这里有一个自动嗅探器严重失败的案例:
printf语句在netbean 中的scanf语句之前未执行

否,它不是必需的或强制性的。

如果该流的默认缓冲不是您想要的,那么您只需要调用setbufsetvbuf。例如,标准输出通常是行缓冲,因此在缓冲区满或发送换行符之前,不会刷新输出。如果希望标准输出不缓冲(所有输出立即显示),需要使用setbufsetvbuf

最新更新