歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux/Windows下Zlib的安裝與使用

Linux/Windows下Zlib的安裝與使用

日期:2017/2/28 15:49:30   编辑:Linux教程

Zlib是一個很好的壓縮解壓縮庫,今天我們分別介紹如何在Linux與Windows上安裝與使用:

一:Linux平台

首先看看自己的機器上是不是已經安裝好zlib了:

whereis zlib

如果安裝好了,會輸出zlib的路徑,這樣直接跳過前2步。

1.

下載zlib的最新版,我的是1.2.3

2.

解壓,編譯:

./configure

make

sudo make install

3.

zlib安裝好了,下面我們寫一個程序測試一下:

Makefile:

  1. all: test.c
  2. gcc -Wall -o test test.c -lz
  3. clean:
  4. rm -rf *.o test

注意到,我們用-lz加入了zlib庫

test.c

  1. #include <stdio.h>
  2. #include <zlib.h>
  3. int main()
  4. {
  5. /* 原始數據 */
  6. unsigned char strSrc[] = "hello world! aaaaa bbbbb ccccc ddddd 中文測試 yes";
  7. unsigned char buf[1024] = {0};
  8. unsigned char strDst[1024] = {0};
  9. unsigned long srcLen = sizeof(strSrc);
  10. unsigned long bufLen = sizeof(buf);
  11. unsigned long dstLen = sizeof(strDst);
  12. printf("Src string:%s\nLength:%ld\n", strSrc, srcLen);
  13. /* 壓縮 */
  14. compress(buf, &bufLen, strSrc, srcLen);
  15. printf("After Compressed Length:%ld\n", bufLen);
  16. /* 解壓縮 */
  17. uncompress(strDst, &dstLen, buf, bufLen);
  18. printf("After UnCompressed Length:%ld\n",dstLen);
  19. printf("UnCompressed String:%s\n",strDst);
  20. return 0;
  21. }

4.

運行結果如下所示:

呵呵,只壓縮掉了一個字節。

我們用到了兩個函數:compress和uncompress:

壓縮:

int compress(unsigned char * dest, unsigned long * destLen, unsigned char * source, unsigned long sourceLen);

dest:壓縮後數據保存的目標緩沖區

destLen:目標緩沖區的大小(必須在調用前設置,並且它是一個指針)

source:要壓縮的數據

sourceLen:要壓縮的數據長度

compress()函數成功返回Z_OK,如果內存不夠,返回Z_MEM_ERROR,如果目標緩沖區太小,返回Z_BUF_ERROR

解壓縮:

int uncompress(unsigned char * dest, unsigned long * destLen, unsigned char * source, unsigned long sourceLen);

dest:解壓後數據保存的目標緩沖區

destLen:目標緩沖區的大小(必須在調用前設置,並且它是一個指針)

source:要解壓的數據

sourceLen:要解壓的數據長度

uncompress()函數成功返回Z_OK,如果內存不夠,返回Z_MEM_ERROR,如果目標緩沖區太小,返回Z_BUF_ERROR,如果要解壓的數據損壞或不完整,返回Z_DATA_ERROR。

Copyright © Linux教程網 All Rights Reserved