linux中有开源的zlib-1.1.4,只要在程序的lib库中包含上libz.a在程序中#include "zlib.h"就可以了.
压缩的函数是:
int compress(Byte *sBuffer, uLong& nDataSize, const Byte* buff, const uLong len);
解压函数是:
int uncompress(Byte *sBuffer, uLong& nDataSize, const Byte* buff, const uLong len);
示例:
#define CHECK_ERR(err, msg) { /
if (err != Z_OK) { /
fprintf(stderr, "%s error: %d/n", msg, err); /
exit(1); /
} /
}
int main()
{
const char hello[] = "hello, hello!";
Byte *compr, *uncompr;
uLong comprLen, uncomprLen;
int err;
uLong len = strlen(hello)+1;
err = compress(compr, &comprLen, (const Bytef*)hello, len);
CHECK_ERR(err, "compress");
strcpy((char*)uncompr, "garbage");
err = uncompress(uncompr, &uncomprLen, compr, comprLen);
CHECK_ERR(err, "uncompress");
if (strcmp((char*)uncompr, hello)) {
fprintf(stderr, "bad uncompress/n");
exit(1);
}
else {
printf("uncompress(): %s/n", (char *)uncompr);
}
return 1;
}