Насколько велик спущенный объект zlib? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь определить размер спущенного шарика zlib.В частности, я дефлятирую объект, и вскоре после этого в этом файле есть еще один дефлированный блоб.Я хочу знать, сколько файлов занимает дефлированный блоб, прежде чем перейти к следующему.Есть ли способ определить это количество байтов?

Спасибо

1 Ответ

0 голосов
/ 18 декабря 2018

Я понял это.Когда вы присваиваете значение для strm.avail_in, вы вводите введенные байты следующим образом:

input_len = strm.avail_in = NUMBER_OF_BYTES_READ_FROM_FILE_OR_STREAM;

Затем, когда вы запустите это:

ret = inflate(&strm, Z_NO_FLUSH);

Это должно обновить значение strm.avail_in с помощьюколичество оставшихся байтов от этой итерации инфляции.Разница между strm.avail_in и значением input_len заключается в количестве дефлированных байтов, прочитанных в этой итерации.Итак, что-то вроде этого:

read_bytes = input_len - strm.avail_in;

Надеюсь, это поможет кому-то еще в будущем.

...