查询有关streambuf的溢出功能

时间:2010-09-20 06:29:46

标签: c++ streambuf

去溢出功能文档。我发现溢出跟随返回值。

返回值:

不同于EOF的值(或其他特征的traits :: eof())表示成功。

如果函数失败,则返回EOF(或其他特征的traits :: eof())或抛出异常。

来源:“http://www.cplusplus.com/reference/iostream/streambuf/overflow/

任何人都可以告诉我哪些sceanrios溢出功能通过例外? 任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

Streambuf是流的底层存储或通信通道的抽象。由于存储或通道可能出现故障的任何原因,overflow()函数可能会失败。例如。磁盘文件的磁盘错误,套接字的连接断开等。

答案 1 :(得分:0)

虽然wilx详细说明了失败(EOF)条件,但异常条件可以是以下任何一种:http://www.aoc.nrao.edu/php/tjuerges/ALMA/STL/html-3.4.6/classstd_1_1exception.html(你猜哪一个?:) - 但它应该(显然)是std::overflow_error如果您正在编写自己的输出流或其他内容。

答案 2 :(得分:0)

在我有问题的情况下它是faling因为它没有跳过下一个地址(setp调用递增0)所以重试使用相同的内存区域并且给出了分段错误。