我有一个关于使用zlib库来压缩数据的问题。 我想设置zlib(即deflateInit函数),使压缩数据的二进制等于命令生成的数据:gzip -9。这可能吗? 提前谢谢
答案 0 :(得分:6)
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,
windowBits | GZIP_ENCODING,
8,
Z_DEFAULT_STRATEGY));
答案 1 :(得分:2)
您无法获得与gzip完全相同的输出。但是,您可以获得与gzip兼容的输出,以便gzip能够对其进行解压缩。您需要使用deflateInit2()
。