6

データを圧縮するための zlib ライブラリの使用について質問があります。圧縮されたデータが、コマンド gzip -9 によって生成されたデータと等しいバイナリになるように、zlib (つまり、deflateInit 関数) をセットアップしたいと考えています。これは可能ですか?前もって感謝します

4

2 に答える 2

9

windowsBits 引数のデフォルト値は 15 です。 これ
に 16 を加えると 31 になります。
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

于 2014-03-05T14:58:34.510 に答える
3

gzip とまったく同じ出力を取得することはできません。ただし、gzip で解凍できるように、gzip と互換性のある出力を取得できます。を使用する必要がありますdeflateInit2()

于 2012-12-07T15:55:04.603 に答える