文件指针
struct gzFile_s {
unsigned have;
unsigned char *next;
z_off64_t pos;
};
typedef struct gzFile_s *gzFile;
打开.gz文件
gzFile ZEXPORT gzopen(path, mode)
const char *path;
const char *mode;
{
...
}
path为文件路径,mode为打开模式,以只读模式打开.gz文件
fpgz = gzopen("./test.txt", "r");
读取.gz文件内容
ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
关闭.gz文件
ZEXTERN int ZEXPORT gzclose OF((gzFile file));
代码示例
gzFile fpgz = gzopen(filepath, "r");
if (NULL == fpgz)
{
printf("Open .gz file [%s] failed.\n", filepath);
exit(EXIT_FAILURE);
}
char line[256];
memset(line, 0, sizeof(line));
while ( gzgets(fpgz, line, sizeof(line)) )
{
printf("* %s", line);
}
gzclose(fpgz);
头文件
#include <zlib.h>
gcc编译
g++ foo.cpp -lz
注意一定要加上-lz
ref
https://github.com/madler/zlib
http://www.zlib.net/