У меня есть переменная "stringstream", которая хранит сжатые двоичные данные в формате gzip.
Я хочу распаковать эту переменную stringstream в памяти.
Прежде всего, для оперативной памятираспаковка двоичных данных в формате gzip, какую стороннюю библиотеку вы предлагаете использовать?
Я заметил библиотеку zlib для сжатия / распаковки форматов gzip и deflate.
Однако, две функции обрабатываютраспаковка, предоставляемая zlip, кажется, не совсем соответствует моим потребностям:
int uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
int gzread (gzFile file, voidp buf, unsigned len);
Первая (распаковка) требует, чтобы я заранее знал длину распакованных данных, чтобы правильно выделить достаточно памяти для хранения.В моем случае это неизвестно.
С другой стороны, второй (gzread) принимает файл как ввод, а не буфер памяти.
Что вы предлагаете для "эффективного""распаковка в памяти с использованием zlip или другой библиотеки?
Спасибо.