Любая используемая библиотека сжатия имеет состояние, так что вы можете сжимать произвольно длинные потоки.Без состояния вы должны были бы передать все данные за один вызов.
Кроме того, любая используемая библиотека сжатия выполняет потоковую передачу, что означает, что имеется только один проход.
zlib является одним примером, где потоки deflate()
, а также inflate()
поддерживают непрозрачное состояние от вызова к вызову, указанному в структуре z_stream
.