Zlib gzopen()返回压缩文件流.是否解压缩文件

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

本文关键字:文件 是否 解压缩 压缩 返回 gzopen Zlib      更新时间:2023-10-16

zlib gzopen()返回压缩文件流。

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

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

提前感谢!

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

我没有在zlib文档中找到关于这一事实的简单声明,但是如果您想自己"证明"它,请创建一个大的(几GB)压缩文件,然后测量gzopen返回的速度。它"显然"不需要花费解压整个文件所需的时间。如果您研究一下gzip压缩是如何定义的,您将看到它被设计为作为流来写入和读取,也就是说您不需要一次解压缩整个文件。