使用zlib将内容添加到压缩文件中

3

我注意到有人提出了这个问题,但并没有很好的答案。如果这是一个stackoverflow上的重复问题(抱歉!)

我的目标是创建一个zlib压缩文件,并在不同时间间隔(例如日志文件)使用C/C++进行追加。由于缓冲区大小的限制,我希望避免必须将整个文件保存在内存中以便追加新的内容。


1
您目前发布的帖子范围过于广泛,不适合在Stack Overflow上发布。请访问帮助中心,并阅读如何提出一个好问题部分。 - Captain Obvlious
@CaptainObvlious:我更新了问题,让它更清晰,简化并指出一个例子可能是日志文件。仍然找不到与之匹配的Stackoverflow内容,正在研究Adler的答案。这似乎很准确。 - JGood
3
@CaptainObvlious 对我来说,这个问题并不太宽泛。它非常简单和具体。“如何将内容附加到zlib流中?” - Mark Adler
2个回答

1

Mark Adler的回答非常接近我所需,但由于已经深入嵌入式设备的zlib库并且资源有限,我陷入了困境。

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

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


0

听起来你想要保留类似于压缩日志的东西,每次追加少量数据。为此,你可以查看gzlog.hgzlog.c,以了解如何实现。

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

这些都很容易适应zlib流。


“gzappend” 接受 “gzip” 文件作为输入,但如果我想要将数据追加到 zlib 压缩文件中怎么办?如果我有错误,请纠正我。 - Sagar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接