Распаковка строки.gz в C?

Мне нужно распаковать файл.gz (например, stuff.txt.gz), который в настоящее время хранится в произвольно длинной строке. Я довольно много смотрел на zip-библиотеках, но ни на что не имею прямого ответа.

Попен не приемлем, мне нужно, чтобы все было в моей программе. Также это Windows.

Можно мне помочь?

1 ответ

Решение

Взгляните на библиотеку gzunpack.

использование

#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);
Другие вопросы по тегам