设置 zlib 以生成 gzip 数据



我有一个关于使用 zlib 库压缩数据的问题。我想设置 zlib(即 deflateInit 函数),使压缩数据二进制等于命令生成的数据:gzip -9。这可能吗?提前谢谢你

windowsBits 参数的默认值为 15.
将 16 添加到它将是 31.
15 |16 返回 31.

z_stream strm;
unsigned char* in = DATA TO COMPRESS;
strm.zalloc = Z_NULL;
strm.zfree = Z_NULL;
strm.opaque = Z_NULL;
strm.next_in = in;
int windowsBits = 15;
int GZIP_ENCODING = 16;
deflateInit2 (&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED,
              windowsBits | GZIP_ENCODING,
              8,
              Z_DEFAULT_STRATEGY));

http://www.lemoda.net/c/zlib-open-write/index.html

您无法获得与 gzip 完全相同的输出。 但是,您可以获得与 gzip 兼容的输出,以便 gzip 能够解压缩它。 您需要使用 deflateInit2() .

最新更新