环顾四周,我发现了被问到的问题,但不是很好的答案。如果这是一个stackoverflow重复(抱歉!)
我的目标是拥有一个zlib压缩文件,我以不同的间隔(例如日志文件)使用C / C ++附加。由于缓冲区大小的限制,我希望避免将整个文件保留在内存中以附加新项目。
答案 0 :(得分:1)
听起来您正在尝试保留类似压缩日志的内容,每次都会附加少量数据。为此,您可以查看gzlog.h
和gzlog.c
以获取有关如何执行此操作的示例。
您还可以查看gzappend
,它将数据附加到gzip文件。
这些都很容易适应zlib流。
答案 1 :(得分:0)
马克·阿德勒的回答非常接近我所需要的,但由于已经在zlib库和有限资源的嵌入式设备上占据了一席之地,我被困住了。
我最后只是在每个数据部分附加一个分隔符(例如:@@ delimiter @@),一旦准备好读取完成的文件(不同的应用程序),它就会寻找这些部分并创建一个压缩部分的数组对象然后单独解压缩。
我仍然认为Adler的答案是正确的,因为它对其他程序员来说更有用。