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:
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?