使用seekoff来检测消防水管是否在流?

时间:2015-08-14 15:45:17

标签: c++

处理输入时,了解您是否以类似火焰的方式发送数据会很有用;也就是说,你可以看到一次数据,一旦它通过流,它就会永远丢失。

有很多firehoses的例子,例如控制台输入,信号捕获设备,来自网络套接字的数据流或命名管道。

C ++流和streambufs应该封装输入和输出行为,但是我不确定是否有一种标准的非破坏性方法来检测潜伏在你的streambuf后面的相关序列是否已经存在手是可以寻找的。

如果您致电streambuf::pubseekoff (0, cur, std::ios_base::in)怎么办?你能依靠吗?

如果相关序列不是物理上可寻找的,那么标准(或至少是设计意义上的)是否需要调用seekoff才能返回streampos(-1)?它会设置failbit吗?是不确定的行为?

这些流没有一个可行的概念"绝对位置"因此即使寻求什么也不做,寻求可能应该返回-1。

但如果不需要这种行为,某些图书馆设计师可能已经决定在这种情况下从搜索中返回其他内容。也许到目前为止通过firehose喂养的人物数量。或gptr()-eback()(无用)。或随机数。

我最不确定的streambuf类型是basic_filebuf。您当然可以在磁盘文件中进行搜索,但操作系统也可以在文件中封装firehose类型的流。概念。

0 个答案:

没有答案