使用 zlib 附加到压缩文件

Append to compressed file using zlib

环顾四周,我找到了被问到的问题,但没有很好的答案。如果这是 Whosebug 重复项(抱歉!)

我的目标是拥有一个 zlib 压缩文件,我在不同的时间间隔使用 C/C++ 附加到该文件(例如日志文件)。由于缓冲区大小的限制,我希望避免将整个文件保存在内存中以附加新项目。

听起来您正在尝试保留类似压缩日志的内容,每次都附加少量数据。为此,您可以查看 gzlog.h and gzlog.c 以了解如何执行此操作的示例。

您还可以查看 gzappend,它将数据附加到 gzip 文件。

这些都很容易适应 zlib 流。

Mark Adler 的回答非常接近我的需要,但由于已经固定在 zlib 库和资源有限的嵌入式设备上,我 was/am 卡住了。

我最后简单地在每个数据部分附加了一个分隔符(例如:@@delimiter@@),一旦准备好读取完成的文件,(不同的应用程序)它会寻找这些部分并创建一个数组对象然后单独解压缩的压缩部分。

我仍然将 Adler 的回答标记为正确,因为它是有用的信息,将对其他程序员有更多帮助。