Каковы различия между функциями deflate() и compress() в zlib?
Я просматривал онлайн примеры и некоторые использовали deflate, в то время как другие использовали компресс.
Как я должен решить, какую ситуацию я бы использовал один над другой?
Каковы различия между функциями deflate() и compress() в zlib?
Я просматривал онлайн примеры и некоторые использовали deflate, в то время как другие использовали компресс.
Как я должен решить, какую ситуацию я бы использовал один над другой?
compress() используется для сжимания данных в одном вызове и всегда сжимается в формате Zlib Em>, который выключает данные с двумя байтовым заголовком и четырехбайтовым прицепом проверки значения. compress() используется сам по себе.
deflate() используется для сжимания данных куски кадром и / или сжать на другие форматы, такие как GZIP EM> -Prapped или RAW EM>, а также с другими вариантами, такими как память Уровни и стратегии сжатия.
Вы будете использовать compress(), если у вас есть все данные, доступные одновременно и достаточно памяти, чтобы удерживать результат, и вы хотите, чтобы сжатие по умолчанию, использование памяти и стратегии. В противном случае вы бы использовали deflate().
Deflate () не используется сама. Вам необходимо использовать deflateInit() или deflateInit2() для инициализации структуры z_stream, используемой deflate(). Затем вы называете deflate() одно или несколько раз, чтобы принять данные, чтобы сжать и сделать доступным результатом. В конце deflateEnd() вызывается для освобождения ресурсов памяти, используемых в структуре. Вы можете прочитать документацию в zlib.h em> и на http://zlib.net/zlib_how.html Для получения дополнительной информации.