我需要 zlib 的 iostream 包装器,它允许将数据附加到现有流的末尾。
附加模式下的 gzopen() 函数遵循下一条规则。“附加时,gzopen 不会测试文件是否以 gzip 流开头,也不会寻找 gzip 流的结尾来开始附加。gzopen 只会将 gzip 流附加到现有文件。” 例如,使用“a”选项打开文件将创建具有多个压缩流的文件。
zlib 的 gzofstream 包装器将参数列表中的 std::ios_base::app 转换为 gzopen() 函数的“ab”模式。因此,gzofstream 还将创建具有多个流的文件。
但是,在我的应用程序中,我需要替代行为。主模块应该以附加模式打开文件(使用 std::ios_base::app 选项),在现有流的末尾写入小数据部分,然后关闭文件。例如,经过多次打开/关闭操作后,文件应始终包含单个压缩流。
zlib 中的 gzlog 示例具有接近所需的功能。但是,它是纯C。
你能为我的任务提出一些现成的解决方案吗?