2016-03-02 370 views
0

所以我有一个问题,我似乎无法找到答案。的zlib压缩/解压缩Linux编程

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

例如:

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

我想你必须拿出你自己的压缩算法,支持:) – LiMuBei

回答

1

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

这也是一个好主意,因为压缩比将大大较长的数据运行更好。

如果您正在寻找某种流媒体解决方案,你唯一的选择是缓冲自己的输入,直到您准备压缩。另一方面,如果您正在寻找一些类似zip的压缩文件,则zlib网站上有代码可帮助您创建zip压缩文件。