码迷,mamicode.com
首页 > 系统相关 > 详细

linux下,gzip的解压与压缩

时间:2015-10-25 12:25:52      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

部分http响应报文采取gzip格式压缩,需要解压后数据才有效。

http://www.zlib.net/

提供了解压gzip的库函数

例子非常详细,http://www.zlib.net/zlib_how.html

系统版本:Ubuntu 14.04

安装库:apg-get install zlib1g-dev

编译时制定:gcc XXX -lz

添加头文件:#include <zlib.h>

特别需要注意:

    example中的

ret = inflateInit(&strm);

    是默认解压zlib,若用它直接解压gzip的报文将返回Z_DATA_ERROR错误,需要将函数替换为:

 ret = inflateInit2(&strm, 47);


另外:由inflateInit 似乎不支持分段解压。通过测试发现,虽然例子中,是按字符串读取的压缩数据,后再解压,看似可以分段解压,但如果就每子字符串单独传入函数解压就会报错。应该是待解压的文件开头会有一些初始化的信息在解压开始赋予了相应的函数,如果从数据中间开始解压就缺少开头的信息,所以报错。

由于此处全是针对解压操作,具体压缩函数未讨论。

linux下,gzip的解压与压缩

标签:

原文地址:http://my.oschina.net/u/2313065/blog/521718

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!