У меня возникла проблема с распаковкой некоторых данных gzip. У меня есть массив с указателями на динамически выделенные строки символов. Каждый элемент этого массива является частью файла gzip, который я хочу распаковать. Первое, что приходит мне на ум, - объединить эти строки в один, а затем распаковать данные, но я хочу избежать этого метода из-за большого количества копий.gzip декомпрессии с использованием библиотеки zlib
Итак, вопрос в том, есть ли способ распаковать данные, разделенные на несколько частей, используя библиотеку zlib? Я пытался это сделать, но когда я распаковываю первую часть, я получаю Z_DATA_ERROR - и это нормально, потому что данные не завершены. Есть ли способ «ждать», чтобы остальные данные распаковывались?
Вы видели это? https://hewgill.com/journal/entries/349-how-to-decompress-gzip-stream-with-zlib Вы должны иметь возможность называть 'inflate()' несколько раз с кусками для распаковки один за другим .. .. –
Да, у меня нет проблем с распаковкой gzip-файла, когда он находится в одном куске. Мне просто интересно, что делать, когда у меня есть это в нескольких частях. Я хотел сделать это один за другим, но когда я декомпрессию первой части, я получаю Z_DATA_ERROR, потому что он не является полным, поэтому он не распакован – user3131037
Проверьте [дополнительные функции в ссылке] (http: //www.zlib .net/manual.html # Advanced), там вы найдете функцию 'inflateBack', которая использует обратные вызовы для чтения и записи данных. –