linux下zlib的使用(linux下名字为libz)


感谢网友贡献的测试示例,使用很方便。

/*
 * main.c
 *
 *  Created on: Aug 12, 2012
 *      Author: zhuguangsheng
 */
#include <stdio.h>
#include <zlib.h>

int main(int argc, char *argv[])
{
 printf("hello my zlib test!\n");

 //原始数据
 const unsigned char strSrc[]="很简单,要编译安装linux下的静态库(.a)文件,那么在命令行下输入 ./configure;make;make install;就可以了,而如果要编译安装共享库(.so,类似windows下面的.dll),那么在命令行下输入 ./configure -s;make;make install;如果出现的都是Yes,那么就成功了。";

 unsigned char buf[1024]={0},strDst[1024]={0};
 unsigned long srcLen=sizeof(strSrc),bufLen=sizeof(buf),dstLen=sizeof(strDst);

 printf("Src string:%s\nLength:%ld\n",strSrc,srcLen);
 //压缩
 compress(buf,&bufLen,strSrc,srcLen);
 printf("\nAfter Compressed Length:%ld\n",bufLen);
 printf("Compressed String:%s\n",buf);
 //解压缩
 uncompress(strDst,&dstLen,buf,bufLen);
 printf("\nAfter UnCompressed Length:%ld\n",dstLen);
 printf("UnCompressed String:%s\n",strDst);

 return 0;
}


传入,传出,指针,得到数据,展示即可。so easy!


作者将此函数进行封装后,更利于使用:

unsigned char* CompressByZlib(unsigned char *Addr, unsigned long RawLength,unsigned long *CompressedLength)
{
	/*------------------------------------------------------
	 *输入:数据源指针,数据长度,及压缩目标程度存储变量地址
	 *输出:压缩完成数据指针,数据长度被赋值。
	 *Input: source pointer , source length ,and compress output length variable
	 *Output: compress output data pointer ,and compress output length variable will be initialised
	 ------------------------------------------------------*/
	printf("Zlib Compressing \n");

	unsigned char BufCompressed[RawLength];
	memset(BufCompressed,0,RawLength);

	int err =0 ; *CompressedLength = RawLength ;
	err = compress(BufCompressed,CompressedLength,Addr,RawLength);
	if (err != Z_OK)
	{
		printf("Compress error\n");

		exit(1);
	}

	printf("\nAfter Compressed Length:%ld\n",*CompressedLength);
	printf("Compressed String:%s\n",BufCompressed);

	printf("\nRaw Data Length:%ld\n",RawLength);

	unsigned char *OutCompressedData = (unsigned char*)malloc(sizeof(char)*(*CompressedLength)); memset(OutCompressedData,0,*CompressedLength);
	memcpy(OutCompressedData,BufCompressed,*CompressedLength);
	/*-------------------------------------------
	 * 自测使用,解压缩
	 * uncompress for self-test.
	 *-------------------------------------------*/
//	unsigned char BufUncompressed[RawLength]; unsigned long UncompressLen=RawLength ;
//	uncompress(BufUncompressed,&UncompressLen,OutCompressedData,*CompressedLength);
//	printf("\nAfter UnCompressed Length:%ld\n",UncompressLen);
//	for(unsigned int i=0;i<RawLength;i++)
//	{
//		if(Addr[i]!=BufUncompressed[i])
//		{
//			printf("Data Not Real\n");
//		}
//	}
//	printf("Data Real kept\n");

	return OutCompressedData;
}

解压缩函数


unsigned char* UnCompressByZlib(unsigned char *Addr, unsigned long RawLength,unsigned long CompressedLength)
{
	/*-----------------------------------------------------
	 * 解压缩,内存使用完成后,请释放
	 * uncompress ,free pointer after memory used
	 -----------------------------------------------------*/
	unsigned char *BufUncompressed = (unsigned char*)malloc(sizeof(char)*RawLength) ;

	unsigned long UncompressLen=RawLength ; int err =0 ;
	err=uncompress(BufUncompressed,&RawLength,Addr,CompressedLength);
	if (err != Z_OK)
	{
		printf("Uncompress error\n");
		exit(-1);
	}
	return BufUncompressed ;
}









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: zlib是一个用于数据压缩和解压缩的库,被广泛地应用于很多软件中。zlib-1.2.8是其中一个版本。在Linux系统中进行zlib-1.2.8的安装可以按照以下步骤进行: 1. 下载zlib-1.2.8的压缩文件,解压缩到某个目录,如:/usr/src。 2. 打开终端,进入到解压后的zlib目录,输入以下命令进行编译: ./configure make make install 3. 上述编译命令的意思是:configure命令是为了生成makefile文件,make命令是为了编译生成zlib库的二进制文件,make install命令是将zlib库文件安装到系统目录中,以便其他程序能够调用该库。 4. 编译完成后,可以进入到/usr/local/lib目录下查看是否已经安装成功。 5. 在使用zlib库的程序中,需要在源代码中包含zlib.h头文件,并且在编译时加上-lz选项,以便将zlib库链接到程序中。 总的来说,安装zlib-1.2.8库并不复杂,只需要几个步骤即可。需要注意的是,在编译时可能会出现一些依赖库的问题,需要根据实际情况进行解决。 ### 回答2: 在 Linux 上安装 zlib-1.2.8 的步骤: 1. 下载 zlib-1.2.8 的源代码包。 2. 解压源代码包,进入解压后的目录。 3. 输入以下命令来进行编译: ./configure make make check sudo make install 4. 验证 zlib 是否安装成功。可以通过以下命令来验证: ldconfig -p | grep zlib 如果验证结果显示“libz.so (libc6) => /usr/lib/x86_64-linux-gnu/libz.so”,则说明 zlib 成功安装。 以上是安装 zlib-1.2.8 的简单步骤,需要注意的是确保 Linux 系统中已经安装了编译工具和相关的依赖库。在安装过程中可能会遇到一些错误,可以通过查看官方文档或者在网上查找解决方案来解决。 ### 回答3: zlib是一个开源的压缩库,可以被很多软件所使用,比如Apache、SQLite以及Git等。在Linux系统中安装zlib-1.2.8库非常简单,只需要遵循以下步骤: 1. 下载zlib-1.2.8源代码包。可以在官方网站上或者其他一些镜像网站上下载zlib-1.2.8压缩包。解压缩文件到指定目录,比如/home/user/zlib-1.2.8。 2. 进入zlib-1.2.8目录。使用命令cd /home/user/zlib-1.2.8进入该目录。 3. 运行配置命令。运行./configure命令来对环境进行配置,确保所有依赖的库和工具都已安装。 4. 编译安装。运行make命令来编译源代码,使用sudo make install命令将其安装到系统中。 5. 验证安装。使用命令ldconfig -v | grep zlib来验证zlib库是否已经被安装到系统中。 6. 测试使用。可以在终端中运行一个可使用zlib的程序进行测试,如果可以使用该库进行压缩和解压缩,则zlib已经成功安装到了系统中。 以上就是在Linux系统中安装zlib-1.2.8的步骤,需要注意的是,在运行编译和安装命令时,需要使用root权限或者使用sudo命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值