zlib安装

zib底层时deflate算法. 详讲https://blog.csdn.net/ghevinn/article/details/45747465

  1. sudo yum install zlib-devel
    gzFile gzopen(const char* path,const char* mode)
    path:要打开的gzip文件名
    mode:rb读/wb写
    返回值 : 返回一个gzFile指针,失败返回NULL .

int gzread(gzFile file,void buf,unsigned len) 从gzip文件中读取解压后的数据.
file:gzopen返回的操作句柄
buf:一块缓冲区,用于存放解压后的数据
len:buf缓冲区的数据大小,
返回值: 返回读取到解压后的数据大小,失败返回-1.

int gzwrite(gzFile file,void buf, unsigned len)
file:gzopen返回的操作句柄
buf:还未压缩的数据,
len:buf中数据的大小,
成功返回压缩了多少数据. 失败返回0;

int gzclose(gzFile file)关闭gzip文件,释放资源.

这是针对直接在内存里进行压缩的,上面的时压缩成文件.,
1 //把源缓冲压缩成到目的缓冲,一个函数就完成了
2 int compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
3
4 //功能和compress函数一样,多了一个参数可以指定压缩质量和压缩数度之间的关系(0-9)。要想得到高的压缩比就要多花时间
5 int compress2 (Bytef *dest, uLongf *destLen,const Bytef *source, uLong sourceLen,int level);
6
7 //计算需要的缓冲区长度. 假设你在压缩之前就想知道你的产度为 sourcelen 的数据压缩后有多大, 可调用这个函数计算一下,这个函数并不能得到精确的结果,但是它可以保证实际输出长度肯定小于它计算出来的长度
8 uLong compressBound (uLong sourceLen);
9
10 //解压缩
11 int uncompress (Bytef *dest, uLongf *destLen,const Bytef *source, uLong sourceLen);

注意:
执行文件时要 -lz 链接库使用,不然会报错.
可以在/usr/include/zlib.h里面看到它的头文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值