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

iza*_*aak 0 c++ gzip zlib

zlib gzopen()返回一个压缩文件流.

gzFile data_file;
data_file = gzopen(filename.c_str(), "r");
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

Ste*_*sop 5

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

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

  • 我可以确认`gzopen()`没有做任何减压. (2认同)