C 是否需要手动请求缓冲?

C 是否需要手动请求缓冲?,c,C,当我打开文件流时,是否需要调用setbuf()和setvbuf()之类的函数来调整缓冲? I/O缓冲不是自动处理的吗?不,缓冲是自动处理的,但是可能不是您想要或需要的方式 您可能希望在每次写入时刷新,仅在换行符上刷新,仅在完全缓冲区上刷新,并且默认设置对于您的情况是错误的 或者,为了提高效率,您可能需要更大的缓冲区 在所有这些情况下,调整默认值。 不过,一般来说,违约是合理的,可以不受影响 这里有一个自动嗅探器严重失败的案例: 不,缓冲是自动处理的,但是可能不是您想要或需要的方式 您可能希望在每

当我打开
文件
流时,是否需要调用
setbuf()
setvbuf()
之类的函数来调整缓冲?

I/O缓冲不是自动处理的吗?

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

您可能希望在每次写入时刷新,仅在换行符上刷新,仅在完全缓冲区上刷新,并且默认设置对于您的情况是错误的

或者,为了提高效率,您可能需要更大的缓冲区

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

这里有一个自动嗅探器严重失败的案例:

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

您可能希望在每次写入时刷新,仅在换行符上刷新,仅在完全缓冲区上刷新,并且默认设置对于您的情况是错误的

或者,为了提高效率,您可能需要更大的缓冲区

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

这里有一个自动嗅探器严重失败的案例:

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


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

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


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

你说的“强制性”是什么意思?我是说有必要吗?对不起,我的英语不好。你的英语很好!再说一遍,你说的“必需”是什么意思?必需/强制性是什么?打开文件流时调用诸如setbuf()和setvbuf()之类的缓冲函数是否必需/强制性?你说的“强制性”是什么意思?我的意思是,很抱歉我的英语不好。你的英语很好!但同样,您所说的“必需”是什么意思?必需/强制性是什么?在打开文件流时调用诸如setbuf()和setvbuf()之类的缓冲函数是否必需/强制性