zlib库介绍三:gzip(.gz格式)文件读写

news/2024/12/4 19:53:37/

gzip格式文件是一个数据压缩文件,文件大体上分为头部、数据部和尾部。

头部和尾部主要是一些文档属性和校验信息(rfc1952),数据部主要是用deflate方法压缩得到的数据。

zlib开源库使用的是deflate算法,因此,可以运用zlib库对gzip文件进行解压。

为便于gzip文件的读写,在zlib库中提供一组用于gzip读写的函数:

文件打开:

gzopen (const char *path, const char *mode);  
path:文件路径
mode:可为"rb"或"wb"。  

数据读取:
 int gzread (gzFile file,voidp buf, unsigned len);  
 

写入数据:

int gzwrite (gzFile file,const voidp buf, unsigned len);  
 

 写入数据:
int gzprintf (gzFile file,const char *format, ...);  
与fprintf用法相同。 

 数据读取:
char * gzgets (gzFile file,char *buf, int len);  
与fgets用法相同。  


 写入数据:

int gzputc (gzFile file, intc);  
与fputc用法相同。  


 数据读取:

int gzgetc (gzFilefile);  
与fgetc用法相同。  


刷新缓冲区:

int gzflush (gzFile file, intflush);  
与fflush作用相同。  


数据寻址:

z_off_t gzseek (gzFile file,z_off_t offset, int whence);  
不支持SEEK_END  

如果文件是开启为"读取",则SEEK_SET及SEEK_CUR。  
如果文件是开启为"写入",仅支援向前SEEK。  


数据寻址:

int gzrewind (gzFilefile);  
与gzseek(file, 0L, SEEK_SET)相同作用,仅在读取时有效。  

返回当前位置:

z_off_t gztell (gzFilefile);  
返回值 : 目前指针位置(解压缩后的位置)  


是否在尾部:

int gzeof (gzFilefile);  
返回值 : 1 - EOF, 0 - not EOF  
 

关闭文件:

int gzclose (gzFilefile);  
返回值 : zlib error number  


http://www.ppmy.cn/news/867422.html

相关文章

SGI图像文件格式

介绍 这是描述SGI图像文件格式的权威文档。这是一个低级规范,描述了 SGI 图像文件的实际字节级格式。在 SGI 机器上,读取和写入 SGI 图像文件的首选方法是使用图像库 -limage。此库提供了一组函数,使读取和写入 SGI 图像变得容易。如果您使用…

Windows上python读取grib2文件(不用Linux)

最近在网上下载的NCEP的fnl数据,发现只有grib2文件格式。因为现在处理数据使用的更多的是python,matlab一类的。网上一搜python读取grib文件需要依赖pygrib库,pygrib是欧洲中期天气预报中心(ECMWF)的GRIG API C库的Python接口,通过…

GLB模型压缩

模型压缩一般有两种路线,一个是减小网格体的顶点和面数,一个是减小纹理材质的贴图 本文将会使用https://github.com/CesiumGS/gltf-pipeline提供的工具进行GLTF模型的压缩。按照官网的步骤安装即可(一定要有Nodejs) 官网有常用命…

lightGBM文件保存

1.使用lightGBM原生的接口保存为txt文件 # 模型训练 gbm lgb.train(params, lgb_train, num_boost_round20, valid_setslgb_eval, early_stopping_rounds5) # 模型保存 gbm.save_model(model.txt) # 模型加载 gbm lgb.Booster(model_filemodel.txt) # 模型预测 y_pred gbm.…

grib1文件解析 python_grib文件解析

一、grib文件简介 WMO是世界气象组织,world meteorology organization。 GRIB是WMO开发的一种用于交换和存储规则分布数据的二进制文件格式。最初GRIB表示“二进制格点”(GRIdded Binary),后来扩展为“二进制的通用规则分布信息”(General Regularly-dis…

grib2文件格式说明

GRIB是一种二进制编码的名称,用于加工资料的传输和交换,GRIB编码的分析或预报产品是由一系列八位组构成的连续比特流组成。在GRIB2中编码资料主要分为9段。 0段——指示段八位组序号 内容 1—4 GRIB(按照国际电报字符5号…

Gerber文件解析

最近公司准备做pcb板缺陷检测,首先要用C解析GerBer文件,我尝试了使用pcb-tools库:https://github.com/curtacircuitos/pcb-tools。完美配置了环境,接下来就是学习一些Kicad制作GerBer文件的规则解析对应Gerber文件。有个问题不太清…

Windows下xarray+cfgrib读取grib文件

在Windows下读取grib文件,在我上一篇博客Windows上python读取grib2文件(不用Linux)学习了使用wgrib2处理grib2文件,可以直接读,也可以转化为nc文件(转化后python就容易处理了)。而对于grib文件&…