日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用zlib库读取单个压缩文档[转]

發布時間:2024/9/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用zlib库读取单个压缩文档[转] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux程式設計入門 - zlib的運用

發布于2005-05-28 被讀1104次 【字體:

gzip(*.gz)檔案格式幾乎是Linux下的標準格式了,有人認為bzip2的壓縮率比gzip來得高。一般來說,這個說法大致正確,不過根據我個人的經驗,有一半以上的檔案,bzip2沒有比gzip的壓縮率來得高,有少數狀況下,gzip壓縮率反
而比bzip2來的高。
zlib是個支援gzip檔案格式的函數庫,它使得gz檔的存取就猶如開檔關檔一樣地容易,您可以很容易地為您的程式加入gz檔的支援。

使用范例 : showgz.c

#include
#include
#include

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


--
在江湖中,只要拿起了刀,就是一場無涯的夢。

轉載于:https://www.cnblogs.com/microsoftxiao/archive/2006/05/06/392497.html

總結

以上是生活随笔為你收集整理的用zlib库读取单个压缩文档[转]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。