zlib gzopen()返回一个压缩文件流。它是否解压缩文件?

时间:2016-08-30 16:47:33

标签: c++ gzip zlib

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:5)

gzopen无法解压缩数据,gzread会在您阅读时解压缩。

我没有在zlib文档中找到这个事实的简单陈述,但是如果你想“证明”它自己创建一个大的(几GB)压缩文件,然后测量速度gzopen回报。它“显然”没有花费解压缩整个文件所需的时间。如果你看一下如何定义gzip压缩,你会发现它被设计为以流的形式写入和读取,也就是说你不需要一次解压缩整个文件。