protected virtual member function
<fstream>

std::basic_filebuf::overflow

int_type overflow (int_type c = traits_type::eof());
将字符放入溢出
中间输出缓冲区的内容写入关联的文件,然后写入 c(除非 ctraits_type::eof)。

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

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

该函数被其基类的公有成员函数调用,例如 sputc,用于放置一个字符,当放置指针pptr)没有可用写入位置时。

此成员函数覆盖了继承的虚拟成员 basic_streambuf::overflow

参数

c
要放置的字符。
如果这是文件结束值(traits_type::eof()),则不放置任何字符,但会尝试执行调用此函数时的其他效果。
成员类型int_type是能够表示任何字符值或特殊*文件结束*符的整型。

返回值

如果成功,则返回放置的字符,该字符使用成员 traits_type::to_int_type 转换为 int_type 类型的值。
否则,它会返回文件结束值(traits_type::eof()),要么是因为 c 参数为该值,要么是为了指示失败(某些实现可能会抛出异常)。
成员类型int_type是能够表示任何字符值或特殊*文件结束*符的整型。

数据竞争

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

异常安全

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

另见