Я пытаюсь программно распаковать gzip-файл в память и имитировать команду gzip -d file.gz
, используя libarchive project .
Файл фактически взят из ответа http со следующим заголовком Accept-Encoding: gzip, deflate
Вот моя попытка прочитать файл. Я не ожидаю, что это не сработает, поскольку в файле gzipped нет записей (он сжат как поток), а archive_read_next_header
пытается прочитать следующий файл из arcihve.
Есть ли альтернатива этой функции, которая извлекает все данные из сжатого файла.
archive_read_support_format_raw(archive);
archive_read_support_filter_all(archive);
archive_read_support_compression_all(archive)
archive_read_open_memory(archive, file_data, file_size);
struct archive_entry *entry;
la_ssize_t total, size;
char *buf;
int status = archive_read_next_header(archive, &entry);
Возможно, кто-то может опубликовать минимальный пример кода, который решит эту проблему?
Кроме того, есть ли возможность узнать, есть ли в архиве gzip записи или нет?