小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Re: 請(qǐng)問(wèn)有誰(shuí)用過(guò)zlib庫(kù)的?

 liujian6916 2007-01-07






 

發(fā)信人: reden (Offer 快快來(lái)啊 ~!), 信區(qū): Linux

標(biāo) 題: Linux程式設(shè)計(jì)入門(mén) - zlib的運(yùn)用

時(shí) 間: BBS 水木清華站 (Thu Apr 1 20:01:57 1999)

 

Linux程式設(shè)計(jì)入門(mén) - zlib的運(yùn)用

____gzip(*.gz)檔案格式幾乎是Linux下的標(biāo)準(zhǔn)格式了,有人認(rèn)為bzip2的壓縮率比gzip來(lái)得高。一般來(lái)說(shuō),這個(gè)說(shuō)法大致正確,不過(guò)根據(jù)我個(gè)人的經(jīng)驗(yàn),有一半以上的檔案,bzip2沒(méi)有比gzip的壓縮率來(lái)得高,有少數(shù)狀況下,gzip壓縮率反而比bzip2來(lái)的高。

____zlib是個(gè)支援gzip檔案格式的函數(shù)庫(kù),它使得gz檔的存取就猶如開(kāi)檔關(guān)檔一樣地容易,您可以很容易地為您的程式加入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

____檢驗(yàn)

gzip -9 < showgz.c > showgz.c.gz

./showgz showgz.c.gz

將會(huì)把這個(gè)程式內(nèi)容顯示出來(lái),showgz的作用可說(shuō)等於gzip -dc。

____函數(shù)宣告

gzFile gzopen (const char *path, const char *mode); 開(kāi)啟一個(gè)gzip(*.gz)檔。

mode叁數(shù)可為"rb"或"wb"。另外也可包含壓縮程度如"wb9"。用‘f‘作為過(guò)濾資料,如"wb6f"。用‘h‘可指定Huffman only壓縮,如"wb1h" 。gzopen亦可用於讀取非壓縮的gzip檔案格式,在這種狀況下,gzread會(huì)直接讀取,而不進(jìn)行解壓縮。

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

如果檔案是開(kāi)啟為"讀取",則SEEK_SET及SEEK_CUR,向前及向後均支援,不過(guò)很慢就是了。如果檔案是開(kāi)啟為"寫(xiě)入",僅支援向前SEEK。

int gzrewind (gzFile file); 與gzseek(file, 0L, SEEK_SET)相同作用,僅在讀取時(shí)有效。

z_off_t gztell (gzFile file); 返回值 : 目前檔案位置(解壓縮後的位置)

int gzeof (gzFile file); 返回值 : 1 - EOF, 0 - not EOF

int gzclose (gzFile file); 關(guān)閉檔案。返回值 : zlib error number

 

OK STATION, Webmaster, Brian Lin

--

在江湖中,只要拿起了刀,就是一場(chǎng)無(wú)涯的夢(mèng)。

※ 來(lái)源:·BBS 水木清華站 bbs.net.tsinghua.edu.cn·[FROM: 159.226.21.168]

============
BTW,精華版里好像也有的,挺簡(jiǎn)單的,呵呵

風(fēng)車(chē)的翼子依然轉(zhuǎn)著
可是磨盤(pán)上
卻是空的...

文章選項(xiàng): 打印

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多