基于zlib,写了两个函数,可以压缩和解压gzip格式的char *数据。
main里面进行了一下包装,实现了压缩和解压gzip文件的功能。
linux上的标准gzip程序会将原始文件名记录在gzip文件的起始处,后面的内容则同下面程序的操作结果完全相同。所以标准gzip的压缩结果总是比下面程序的压缩结果多几个字节,不过这几个字节不影响解压。
如果需要成功编译该程序,可能需要修改下面zlib头文件的位置到你的环境中的正确位置。
/*************************************************************************** *
* Copyright (c) 2015 Xxx.com, Inc. All Rights Reserved
*
**************************************************************************/
/**
* @file main.cpp
* @author xxx(com@xxx.com)
* @date 2015/01/07 11:46:57
* @brief
*
**/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <zlib.h> // "zlib.h" ?
#define windowBits 15
#define ENABLE_ZLIB_GZIP 32
#define GZIP_ENCODING 16
/**
* @brief
* @param dest_len big enough to hold the result
*/
int decompress (unsigned