Linux教程Linux
首页
基础知识
Linux业界
Linux系统
Linux人物
Linux文化
Linux资讯
Linux综合
当前位置:
Linux教程
-
Linux
- zlib的运用
zlib的运用
gzip(*.gz)档案格式几乎是Linux下的标准格式了,有人认为bzip2的压缩率比
gzip来得高。一般来说,这个说法大致正确,不过根据我个人的经验,有一半
以上的档案,bzip2没有比gzip的压缩率来得高,有少数状况下,gzip压缩率反
而比bzip2来的高。
zlib是个支援gzip档案格式的函数库,它使得gz档的存取就犹如开档关档一样
地容易,您可以很容易地为您的程式加入gz档的支援。
使用范例 : showgz.c
#include stdio.h
#include stdlib.h
#include zlib.h
void main(int argc,char **argv)
{
gzFile zip;
int c;
if (argc<2) return;
zip = gzopen(argv[1],\"rb\");
while ((c=gzgetc(zip))!=EOF) putchar(c);
gzclose(zip);
}
编译
gcc -o showgz showgz.c -lz
检验
gzip -9 < showgz.c > showgz.c.gz
./showgz showgz.c.gz
将会把这个程式内容显示出来,showgz的作用可说等於gzip -dc。
函数宣告
gzFile gzopen (const char *path, const char *mode);
开启一个gzip(*.gz)档。
mode叁数可为\"rb\"或\"wb\"。
另外也可包含压缩程度如\"wb9\"。
用\f\作为过滤资料,如\"wb6f\"。
用\h\可指定Huffman only压缩,如\"wb1h\"
gzopen亦可用於读取非压缩的gzip档案格式,在这种状况下,gzread会直接读
取,而不进行解压缩。
int gzread (gzFile file, voidp buf, unsigned len);
与read的用法相同。
int gzwrite (gzFile file, const voidp buf, unsigned len);
与write用法相同。
int gzprintf (gzFile file, const char *format, ...);
与fprintf用法相同。
char * gzgets (gzFile file, char *buf, int len);
与fgets用法相同。
int gzputc (gzFile file, int c);
与fputc用法相同。
int gzgetc (gzFile file);
与fgetc用法相同。
int gzflush (gzFile file, int flush);
与fflush作用相同。
z_off_t gzseek (gzFile file, z_off_t offset, int whence);
whence不支援SEEK_END
如果档案是开启为\"读取\",则SEEK_SET及SEEK_CUR,向前及向後均支援,不过
很慢就是了。
如果档案是开启为\"写入\",仅支援向前SEEK。
int gzrewind (gzFile file);
与gzseek(file, 0L, SEEK_SET)相同作用,仅在读取时有效。
z_off_t gztell (gzFile file);
返回值 : 目前档案位置(解压缩後的位置)
int gzeof (gzFile file);
返回值 : 1 - EOF, 0 - not EOF
int gzclose (gzFile file);
关闭档案
返回值 : zlib error number
发布人:Crystal 来自:LinuxAid 专业技术支�
支持Linux的显卡性能综合对比
中小企业服务器配置方案 第一章(5)
标准建模语言UML及其支持环境(三)
Linux网络管理员手册(17)
SERVER PUSH的具体实现
Linux下守护进程的创建
关于Sendmail和Perl的邮件附件过滤系统
网络数据库5日教程(2)
Qmail+MH设计方案
linux汉化大全(二)
XUL教程 发布说明
建一个大容量的webmail系统
通讯安全
Linux循序渐进(18):netstat命令
下一代电信网如何演进
站点导航
Linux教程
Php
Linux
非技术类
指令大全
Shell
安装启动
Xwindow
Kde
Gnome
输入法类
美化汉化
网络配置
存储备份
杂项工具
编程技术
网络安全
内核技术
速度优化
Apache
Email
Ftp服务
Cvs服务
代理服务
Samba
域名服务
网络过滤
其他服务
Nfs
Oracle
Dhcp
Mysql
Ldap
RedHat
赞助商链接