繁体   English   中英

zlib压缩/解压缩c ++ linux

[英]zlib compress/uncompress c++ linux

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

如果我通常压缩小字符数组并将其添加到较大的字符数组中,我是否可以立即解压缩该大字符数组并取回所有原始数据?

例如:

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归档文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM