受保护的虚成员函数
<fstream>

std::filebuf::setbuf

streambuf* setbuf (char* s, streamsize n);
设置缓冲区
影响输出操作的缓冲方式

如果两个参数都为零,并且对象上尚未执行任何输入/输出操作,则流的输出将变为无缓冲:对于无缓冲流,所有输出都直接写入文件(pptrpbase 始终是空指针,强制输出操作调用 overflow)。

否则,对象的缓冲方式会受到影响,具体方式取决于库的实现。

此虚成员函数重写了继承的成员 streambuf::setbuf,由成员 pubsetbuf 调用以影响内部缓冲区。

参数

s, n
由实现定义。
如果两个参数都为零,并且对象尚未执行任何输入/输出操作,则流将变为无缓冲。
streamsize 是一个带符号整型。

返回值

返回 this

数据竞争

如果两个参数都为零,它会修改 filebuf 对象(同一对象的并发访问可能会导致数据争用)。
否则,不确定。

异常安全

基本保证:如果抛出异常,*文件流缓冲区*处于有效状态。

另见