linux下,gzip的解压与压缩

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

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

时间: 2024-08-01 18:40:31

linux下,gzip的解压与压缩的相关文章

Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋

刚 在qq群里面一位仁兄问到文件压缩的命令,平时工作中大多用解压缩命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux下创建与解压 zip.tar.tar.gz和tar.bz2文件及他们之间压缩率对比,在自己的脑袋内存空间有限又不经常使用的时候以便于备忘.现整理如下: 目前Linux下常见的压缩文件扩展名: *.Z        compress程序压缩的文件(最早期使用),压缩后取代源文件: *.zip      一个夸平台的文件打包程序,适用于Linux.windows和Mac

[转载] linux下tar命令解压到指定的目录

参考 http://blog.sina.com.cn/s/blog_62449fcf0100nfar.html linux下tar命令解压到指定的目录 : #tar zxvf /bbs.tar.zip -C /zzz/bbs //把根目录下的bbs.tar.zip解压到/zzz/bbs下,前提要保证存在/zzz/bbs这个目录 这个和cp命令有点不同,cp命令如果这个目录不存在,就会自动创建这个目录! 附:用tar命令打包 例:将 当前目录下的zzz文件 打包到当前目录下并命名为zzz.tar.

linux中tar之解压和压缩常用

我们知道在windows中解压和压缩有两个非常强大的工具winRar和国产的好压工具,在linux中也有一款强大的解压和压缩工具.那就是大名鼎鼎的tar.我们首先看看tar命令的使用格式 语法:tar [主选项+辅选项] 文件或目录 主选项 c 创建新的档案文件.如果用户想备份一个目录或是一些文件,就要选择这个选项.相当于打包 x 从档案文件中释放文件.相当于拆包. t 列出档案文件的内容,查看已经备份了哪些文件 辅选项 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解

linux .tar.xz 文件解压和压缩

场景:centos7.0下文件格式为xxx.tar.xz,解压和压缩命令: 压缩 tar -Jcf linux-3.10.0-123.13.1.el7.tar.xz(文件名) linux-3.10.0-123.13.1.el7/ 解压: tar -Jxf linux-3.10.0-123.13.1.el7.tar.xz

Linux系统下ZIP文件解压和压缩命令

zip all.zip *.jpg   #将所有.jpg的文件压缩成一个zip包 unzip all.zip    #将all.zip中的所有文件解压到当前目录中 unzip all.zip -d all #将all.zip 中的所有文件解压到当前目录中的all文件夹中 zip -r hy.zip hy  #将当前目录下的hy文件夹压缩为hy.zip zip -r hy.zip hy 123.txt  #将当前目录下的hy文件夹和123.txt压缩为hy.zip 作者:open210 来源:CS

如何在Linux下创建与解压,安装zip, tar, tar.gz和tar.bz2文件

zip可能是目前使用得最多的文档压缩格式.它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用.缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好.闲话少说,我们步入正题吧: 我们可以使用下列的命令压缩一个目录: # zip -r archive_name.zip directory_to_compress 下面是如果解压一个zip文档: # unzip archive_name.zip TAR Tar是在Linux中使用

在linux下解决默认解压zip中文乱码问题

在linux下直接unzip xx.zip 时,总会遇到乱码问题,这是因为在windows上压缩的文件,是以windows默认编码中文来压缩文件.由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码. 解决的方法是: 1.解压时指定编码: unzip -O CP936 xx.zip 2.在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件 /etc/environment中加入2行: UNZIP="-O CP936" ZIP

如何在Linux下创建与解压zip, tar, tar.gz和tar.bz2文件

这么多年来,数据压缩对我们来说是非常有用的.无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件,我们都可以让下载更容易或者有效的节约磁盘空间.某些压缩格式有时允许我们以60%的比率(甚至更高)压缩文件.下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目录.我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法.这几个是在Linux里面常用的压缩格式. 在我们探究这些用法之前,我想先跟大家分享一下使用不同压缩格式的经验.当然,我这里讲到的只是其中

Linux 下 zip 文件解压乱码解决方案,ubuntu16.10亲测可用

文章来源: https://www.zhihu.com/question/20523036 今天邮件中收到了一个压缩文件,解压后却是乱码,从网上也找了几个方法,目前这个方法还是比较可靠的,如下所示: 7z方案 需要安装p7zip和convmv,在Fedora下的命令是 su -c 'yum install p7zip convmv' 在ubuntu下的安装命令是 sudo apt-get install p7zip convmv 安装完之后,就可以用7za和convmv两个命令完成解压缩任务.