zlib получает размер gzip-файла перед сжатием

#c #gzip #zlib

#c #gzip #zlib

Вопрос:

У меня следующая проблема: я использую zlib в C для архивирования файлов. Сжатие (с использованием z_stream , deflateInit2 …) не является проблемой, но мне нужно знать размер файла gziped, прежде чем я его сжимаю. Возможно ли это или это единственный вариант, который я должен подсчитывать байты при сжатии? Заранее спасибо!

Комментарии:

1. Зачем вам нужно знать сжатый размер перед сжатием?

Ответ №1:

но мне нужно знать размер файла gziped перед его сжатием

Если вы имеете в виду, что вам нужно его сжать (возможно, для выделения буфера для хранения данных), то вы ошибаетесь, весь смысл z_stream в том, чтобы позволить вам сжимать входные фрагменты в выходные фрагменты.

это единственный вариант, который я должен подсчитывать байты при сжатии

Да, вам нужно применить алгоритм сжатия, чтобы узнать результирующий размер.