Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4826987
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2009-12-08 21:53:53

#include <zlib.h>
#include <zconf.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char **argv[])
{
    char msg[1000]="123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n";
    char buf[1000];
    char result[1000];
    unsigned long len, lenresult;

    printf("msg size:%d\n", strlen(msg));
    len = 1000;
    compress(buf, &len, msg, strlen(msg) );
    printf("buf size:%d\n", len);

    lenresult=1000;
    uncompress(result,&lenresult, buf, len );
    
    printf("result size:%d\n", lenresult);
    printf("result:%s\n", result);
    return 0;
}
 

 

 

编译:

LIB = -lz
all : clean tt
.PHONY : all
clean :
    -rm *.o tt
tt : tt.o
    cc -g -o tt tt.o $(LIB)
tt.o : tt.c
    cc -g -c tt.c


程序中需要注意几个地方:

1. 使用compress 与 uncompress之前,必须为目标长度设初值,而且该值要大于你需要解压或者压缩的结果长度,不然会出问题。

2. 编译需要-lz参数。


 

阅读(1502) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~