打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Re: 请问有谁用过zlib库的?






 

发信人: reden (Offer 快快来啊 ~!), 信区: Linux

标 题: Linux程式设计入门 - zlib的运用

时 间: BBS 水木清华站 (Thu Apr 1 20:01:57 1999)

 

Linux程式设计入门 - 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

 

OK STATION, Webmaster, Brian Lin

--

在江湖中,只要拿起了刀,就是一场无涯的梦。

※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 159.226.21.168]

============
BTW,精华版里好像也有的,挺简单的,呵呵

风车的翼子依然转着
可是磨盘上
却是空的...

文章选项:

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Zlib函数列表和使用手册
自我学会利用Linux系统上已有的开发库
gzip zlib deflate 相关介绍
const char *,char const *,char * const
linux 下安装 nginx及ssl,pcre,zlib,gzip
nginx搭建flv流媒体服务器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服