zlib gzopen() returns 压缩文件流。它会解压缩文件吗?

zlib gzopen() returns a compressed file stream. Does it decompress the file?

zlib gzopen() returns 压缩文件流。

gzFile data_file;
data_file = gzopen(filename.c_str(), "r");

其中 data_file 是压缩文件流。 我可能从 zlib 文档中错过了这个。但是,这会解压缩打开的文件吗? 或者 gzopen() 是否能够直接解析 gzipped 文件而不需要 要解压吗?

提前致谢!

gzopen 不解压缩数据,gzread 在您阅读时解压缩。

我没有在 zlib 文档中找到关于这个事实的简单说明,但是如果你想 "prove" 自己创建一个大的(几 GB)压缩文件,然后测量多快 gzopen returns。它 "obviously" 不需要解压缩整个文件所需的时间。如果您查看 gzip 压缩是如何定义的,您会发现它被设计为以流的形式写入和读取,也就是说您不需要一次解压缩整个文件。