protected virtual member function
<fstream>

std::basic_filebuf::setbuf

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

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

否则,对象的缓冲方式会以一种依赖于库实现的方式受到影响。

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

参数

s, n
由实现定义。
如果两者都为零,并且对象尚未执行任何输入/输出操作,则流将变为无缓冲。
成员类型 char_type流缓冲区(第一个类模板参数)中字符的类型。
streamsize 是一个带符号整型。

返回值

返回 this

数据竞争

如果两个参数都为零,它将修改 basic_filebuf 对象(同时访问同一对象可能会引入数据争用)。
否则,不确定。

异常安全

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

另见