在C中解压缩.gz字符串?
我需要解压缩一个.gz文件(比如stuff.txt.gz),该文件当前存储在任意长的字符串中。我已经看过很多zip库了,但是没有一个库有一个直接的答案 popen是不可接受的,我需要所有的东西都在我的程序中。还有,这是Windows 我能得到一些帮助吗?看看图书馆 用法在C中解压缩.gz字符串?,c,string,gzip,compression,C,String,Gzip,Compression,我需要解压缩一个.gz文件(比如stuff.txt.gz),该文件当前存储在任意长的字符串中。我已经看过很多zip库了,但是没有一个库有一个直接的答案 popen是不可接受的,我需要所有的东西都在我的程序中。还有,这是Windows 我能得到一些帮助吗?看看图书馆 用法 你听说过zlib吗?更具体地说:你有没有尝试过自己去寻找一些东西?谷歌在这方面非常有用 #include "gzunpack.h" ... // read .GZ file header FILE *pac
你听说过zlib吗?更具体地说:你有没有尝试过自己去寻找一些东西?谷歌在这方面非常有用
#include "gzunpack.h"
...
// read .GZ file header
FILE *packedFileHandle = fopen("test1.gz", "rb");
GzFileHeader *gzFileHeader = gzUnpackHeader(packedFileHandle);
printf("Header:\n");
printf("compressionMethod = %d\n", gzFileHeader->compressionMethod);
printf("originalFileName = '%s'\n", gzFileHeader->originalFileName);
printf("fileComment = '%s'\n", gzFileHeader->fileComment);
// unpack .GZ file
fseek(packedFileHandle, 0, SEEK_SET); // rewind
FILE *unpackedFileHandle = fopen(gzFileHeader->originalFileName, "wb");
gzUnpackFile(packedFileHandle, unpackedFileHandle);
// free resources
fclose(unpackedFileHandle);
fclose(packedFileHandle);
gzFreeHeader(gzFileHeader);