Welcome 微信登录

首页 / 操作系统 / Linux / Linux/Windows下Zlib的安装与使用

Zlib是一个很好的压缩解压缩库,今天我们分别介绍如何在Linux与Windows上安装与使用:一:Linux平台首先看看自己的机器上是不是已经安装好zlib了:whereis zlib如果安装好了,会输出zlib的路径,这样直接跳过前2步。1.下载zlib的最新版,我的是1.2.32.解压,编译:./configuremakesudo make install3.zlib安装好了,下面我们写一个程序测试一下:Makefile:
  1. all: test.c  
  2.     gcc -Wall -o test test.c -lz  
  3.   
  4. clean:  
  5.     rm -rf *.o test  
注意到,我们用-lz加入了zlib库test.c
  1. #include <stdio.h>   
  2. #include <zlib.h>   
  3.   
  4. int main()  
  5. {  
  6.   /* 原始数据 */  
  7.   unsigned char strSrc[] = "hello world! aaaaa bbbbb ccccc ddddd 中文测试 yes";  
  8.   unsigned char buf[1024] = {0};  
  9.   unsigned char strDst[1024] = {0};  
  10.   unsigned long srcLen = sizeof(strSrc);  
  11.   unsigned long bufLen = sizeof(buf);  
  12.   unsigned long dstLen = sizeof(strDst);  
  13.   
  14.   printf("Src string:%s Length:%ld ", strSrc, srcLen);  
  15.     
  16.   /* 压缩 */  
  17.   compress(buf, &bufLen, strSrc, srcLen);  
  18.   printf("After Compressed Length:%ld ", bufLen);  
  19.   
  20.   /* 解压缩 */  
  21.   uncompress(strDst, &dstLen, buf, bufLen);  
  22.   printf("After UnCompressed Length:%ld ",dstLen);  
  23.   
  24.   printf("UnCompressed String:%s ",strDst);  
  25.     
  26.   return 0;  
  27. }  
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。
  • 1
  • 2
  • 3
  • 下一页
Ubuntu下搭建Ruby On Railsgrub error: unknown filesystem的解决办法相关资讯      Zlib安装 
  • Ubuntu下安装Zlib(附Zlib1.2.3本地  (09/15/2008 21:05:22)
本文评论 查看全部评论 (0)
表情: 姓名: 字数