2

我正在编写一个与 std::ostreams 耦合的对象序列化库。根据底层的 streambuf,一些 ostream 支持查找操作,而一些不支持。此外,一些流写入固定大小的接收器,而一些流会增长(fstream、stringstream 等)。

就我而言,我正在开发一个嵌入式系统,我想非常保护我的资源。我想以与流无关的方式对允许写入的字节数施加任意最大限制。

我之前写过自定义的streambufs(一个包装zlib,一个包装sqlite blob api)。我想我可以为这个限制目的编写另一个自定义包装streambuf。有没有人有任何其他建议?如果我必须编写另一个streambuf,是否有一种简单的方法来计算写入底层流的实际字节数?

限制:
不能使用 boost(嵌入式平台)
应该适用于任何标准 ostream(fstream、stringstream、cout 等)

4

1 回答 1

1

因此,您需要实现自己的streambuf::overflow,并在达到限制时返回 EOF 。

于 2013-02-02T00:15:12.070 回答