how to decompress gzip stream with zlib

本文介绍如何使用zlib库正确解压缩GZIP格式的文件。关键在于调用inflateInit2时设置windowBits参数为16+MAX_WBITS,以确保zlib能识别GZIP头。

how to decompress gzip stream with zlib

how to decompress gzip stream with zlib

I'm posting this in my journal because it trips me up every time I have to do this, and I need something googleable so I can easily find this info next time.

To decompress a gzip format file with zlib, call inflateInit2 with the windowBits parameter as 16+MAX_WBITS, like this:

inflateInit2(&stream, 16+MAX_WBITS);

If you don't do this, zlib will complain about a bad stream format. By default, zlib creates streams with a zlib header, and on inflate does not recognise the different gzip header unless you tell it so. Although this is documented starting in version 1.2.1 of the zlib.h header file, it is not in the zlib manual.

Update: I've added this as a question (and answer!) on Stack Overflow: How can I decompress a gzip stream with zlib?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值