• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Linux程序设计入门 - zlib的运用

发布: 2007-7-01 23:30 | 作者: admin | 来源: | 查看: 11次 | 进入软件测试论坛讨论

领测软件测试网   gzip(*.gz)档案格式几乎是Linux下的标准格式了,有人认为bzip2的压缩率比gzip来得高。一般来说,这个说法大致正确,不过根据我个人的经验,有一半以上的档案,bzip2没有比gzip的压缩率来得高,有少数状况下,gzip压缩率反
而比bzip2来的高。

   zlib是个支援gzip档案格式的函数库,它使得gz档的存取就犹如开档关档一样地容易,您可以很容易地为您的程式加入gz档的支援。


   使用范例:showgz.c

#include
#include
#include


voidmain(intargc,char**argv)
{
gzFilezip;
intc;
if(argc<2)return;
zip=gzopen(argv〔1〕,"rb");
while((c=gzgetc(zip))!=EOF)putchar(c);
gzclose(zip);
}


   编译

gcc-oshowgzshowgz.c-lz

   检验

gzip-9showgz.c.gz
./showgzshowgz.c.gz


   将会把这个程式内容显示出来,showgz的作用可说等於gzip-dc。



   函数宣告


gzFilegzopen(constchar*path,constchar*mode);

   开启一个gzip(*.gz)档。

   mode叁数可为"rb"或"wb"。

   另外也可包含压缩程度如"wb9"。

   用@#f@#作为过滤资料,如"wb6f"。

   用@#h@#可指定Huffmanonly压缩,如"wb1h"

   gzopen亦可用於读取非压缩的gzip档案格式,在这种状况下,gzread会直接读取,而不进行解压缩。

   intgzread(gzFilefile,voidpbuf,unsignedlen);与read的用法相同。

   intgzwrite(gzFilefile,constvoidpbuf,unsignedlen);与write用法相同。

   intgzprintf(gzFilefile,constchar*format,...);与fprintf用法相同。

   char*gzgets(gzFilefile,char*buf,intlen);与fgets用法相同。

   intgzputc(gzFilefile,intc);与fputc用法相同。

   intgzgetc(gzFilefile);与fgetc用法相同。

   intgzflush(gzFilefile,intflush);与fflush作用相同。

   z_off_tgzseek(gzFilefile,z_off_toffset,intwhence);whence不支援SEEK_END

   如果档案是开启为"读取",则SEEK_SET及SEEK_CUR,向前及向後均支援,不过很慢就是了。

   如果档案是开启为"写入",仅支援向前SEEK。


intgzrewind(gzFilefile);

与gzseek(file,0L,SEEK_SET)相同作用,仅在读取时有效。


z_off_tgztell(gzFilefile);

返回值:目前档案位置(解压缩後的位置)


intgzeof(gzFilefile);

返回值:1-EOF,0-notEOF


intgzclose(gzFilefile);

关闭档案

返回值:zliberrornumber

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网