附加到压缩文件使用zlib

Append to compressed file using zlib

本文关键字:zlib 文件 压缩      更新时间:2023-10-16

环顾四周,我发现了被问到的问题,但没有很好的答案。如果这是一个stackoverflow副本(抱歉!)

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

Mark Adler的回答非常接近我所需要的,但是由于已经在zlib库中根深蒂固,并且在资源有限的嵌入式设备上,我被卡住了。

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

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

听起来好像您正在尝试保留压缩日志之类的东西,每次附加少量数据。为此,您可以查看gzlog.hgzlog.c,以了解如何执行此操作。

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