zlib压缩/解压缩c ++ linux

时间:2016-03-02 18:22:43

标签: c++ linux zlib

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

如果我包含压缩小字符数组并将它们添加到更大的字符数组,我可以一次解压缩那个大字符数组并取回所有原始数据吗?

例如:

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" ??

1 个答案:

答案 0 :(得分:1)

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

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

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