c++ - zlib 压缩/解压缩 C++ Linux

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

最佳答案

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

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

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

关于c++ - zlib 压缩/解压缩 C++ Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755192/

相关文章:

c - ZLib 和 memcpy

c++ - c 中的 Minecraft NBT zlib 压缩未被游戏接受

wireshark - 为什么这个 SPDY SYN_STREAM 样本的 header 显然未压缩?

c++ - C++如何调用派生类的基类方法?

c++ - C++ 读取图像文件并将其放在套接字上

c++ - 函数中的内存释放 (C++)

linux - 在 Vim 的新选项卡中打开上次关闭的文件

c++ - 将普通功能更改为模板会产生任何正/负差异吗?

linux ->& 在命令中是什么意思?

linux - 在 Linux 中,有一系列假定按顺序命名的文件,我如何进行检查以验证所有文件是否确实存在?