Zlib 压缩/解压缩 C++ Linux

zlib compress/uncompress c++ linux

本文关键字:C++ Linux 解压缩 压缩 Zlib      更新时间:2023-10-16

所以我有一个问题,我似乎找不到答案。

如果我包含压缩小字符数组并

将它们添加到较大的字符数组中,我可以立即解压缩该大字符数组并取回所有原始数据吗?

例如:

char arry1 = "Today is";
char arry2 = " a nice day";
char arryBig[20];
//pseudo code for compress, but you get the idea
compress(arry1)
strcpy(arryBig, arry1);
//again, pseudo code for compress
compress(arry2);
strcpy(arryBig+9, arry2);
uncompress(arryBig);
//does arryBig == "today is a nice day" ??

不,你不能。压缩的结果是一个复杂的结构,你不能简单地连接起来。即使你可以,你也不应该使用 strcpy 来做,因为 compress() 的输出很可能包含空字符。

这也是一个坏主意,因为对于长时间的数据,压缩率会好得多。

如果您正在寻找某种流媒体解决方案,您唯一的选择是缓冲您的输入,直到您准备好压缩。另一方面,如果您正在寻找一些类似zip存档的东西,那么zlib网站上有代码可以帮助您创建zip存档。