zlib中基本函数都有哪些-创新互联

zlib中基本函数都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

站在用户的角度思考问题,与客户深入沟通,找到成安网站设计与成安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、做网站、企业官网、英文网站、手机端网站、网站推广、申请域名雅安服务器托管、企业邮箱。业务覆盖成安地区。

获取版本函数:zlibVersion

       压缩函数:deflateInit、deflate、deflateEnd

  解压缩函数:inflateInit、inflate、inflateEnd

#include 
#include 

#include 
#include 

using namespace std;

#define CHUNK 16384

int def(FILE *source, FILE *dest, int level)
{
	z_stream strm;
	strm.zalloc = Z_NULL;
	strm.zfree = Z_NULL;
	strm.opaque = Z_NULL;
	deflateInit(&strm, level);

	int flush;
	int have;
	unsigned char in[CHUNK];
	unsigned char out[CHUNK];
	do 
	{
		strm.avail_in = fread(in, 1, CHUNK, source);
		strm.next_in = in;
		flush = feof(source) ? Z_FINISH : Z_NO_FLUSH;

		do 
		{
			strm.avail_out = CHUNK;
			strm.next_out = out;

			deflate(&strm, flush);

			have = CHUNK - strm.avail_out;
			fwrite(out, 1, have, dest);

		} while (0 == strm.avail_out);

	} while (Z_FINISH != flush);

	deflateEnd(&strm);

	return Z_OK;
}

int inf(FILE *source, FILE *dest)
{
	z_stream strm;
	strm.zalloc = Z_NULL;
	strm.zfree = Z_NULL;
	strm.opaque = Z_NULL;
	inflateInit(&strm);

	int ret = Z_OK;
	int have;
	unsigned char in[CHUNK];
	unsigned char out[CHUNK];
	do 
	{
		strm.avail_in = fread(in, 1, CHUNK, source);
		strm.next_in = in;
		if(0 == strm.avail_in)
			break;

		do 
		{
			strm.avail_out = CHUNK;
			strm.next_out = out;

			ret = inflate(&strm, Z_NO_FLUSH);

			have = CHUNK - strm.avail_out;
			fwrite(out, 1, have, dest);

		} while (0 == strm.avail_out);
	} while (Z_STREAM_END != ret);

	inflateEnd(&strm);

	return Z_OK;
}

void main(int argc, char *argv[])
{

	cout<<"zlibVersion:"<

此代码参数官网示例代码,本代码为了学习,只写了最简单的函数,没有错误处理。

看完上述内容,你们掌握zlib中基本函数都有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


本文题目:zlib中基本函数都有哪些-创新互联
本文网址:http://ybzwz.com/article/ghcep.html