Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中解压缩.gz字符串?_C_String_Gzip_Compression - Fatal编程技术网

在C中解压缩.gz字符串?

在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

我需要解压缩一个.gz文件(比如stuff.txt.gz),该文件当前存储在任意长的字符串中。我已经看过很多zip库了,但是没有一个库有一个直接的答案

popen是不可接受的,我需要所有的东西都在我的程序中。还有,这是Windows

我能得到一些帮助吗?

看看图书馆

用法
你听说过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);