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

std::filebuf::overflow

int overflow (int c = EOF);
溢出时写入字符
中间输出缓冲区的内容写入关联的文件,后面跟着 c(除非 cEOF)。

该函数使用 codecvt::out 来通过适当的方面转换输出字符。然后它会更新定义中间输出缓冲区的指针(pptrepptrpbase),以便写入文件的字符不属于它,并-可能-在输出指针pptr)处提供写入位置。

如果函数无法写入字符,它将返回文件结束值(EOF)以表示失败。

此函数由其基类的公共成员函数调用,例如 sputc,用于在输出指针pptr)没有可用写入位置时放置字符。

此成员函数覆盖继承的虚成员 streambuf::overflow

参数

c
要放置的字符。
如果这是文件结束值(EOF),则不放置任何字符,但会尝试执行调用此函数时发生的其他效果。

返回值

如果成功,则返回放置的字符,类型为 int
否则,它将返回文件结束值(EOF),无论是当 c 参数为此值时调用,还是表示失败(某些实现可能会抛出异常)。

数据竞争

修改 filebuf 对象。
同时访问同一个文件流缓冲区对象可能导致数据争用。

异常安全

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

另见