2012-04-15 19 views

Odpowiedz

44

compress() służy do kompresji danych w pojedynczej rozmowy i zawsze kompresuje do zlib formacie , który jest korekta danych z nagłówkiem dwubajtowa oraz przyczepa wartości check czterech bajtów. compress() jest używany samodzielnie.

deflate() służy do kompresji danych kawałek na raz, i/lub kompresować do innych formatów, takich jak gzip -wrapped lub surowy, a także z innych opcji, takich jak poziom pamięci i strategii kompresji.

Użyłbyś compress(), jeśli masz wszystkie dostępne dane jednocześnie i wystarczającą ilość pamięci do przechowywania wyników, a chcesz mieć domyślny format kompresji, użycie pamięci i strategię. W przeciwnym razie użyłbyś deflate().

Funkcja deflate() nie jest używana samodzielnie. Musisz użyć deflateInit() lub deflateInit2(), aby zainicjować strukturę z_stream używaną przez deflate(). Następnie zadzwoń deflate() jeden lub więcej razy, aby wziąć dane do kompresji i udostępnić wynik. Na końcu wywoływana jest nazwa deflateEnd() w celu zwolnienia zasobów pamięci używanych w strukturze. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją pod numerami zlib.h i http://zlib.net/zlib_how.html.

+21

Mark Adler jest [zdecydowanie autorytetem w tej sprawie] (http://en.wikipedia.org/wiki/Mark_Adler). – Xenon

+0

dziękuję. Czytałem niektóre z nich, ale początkowo nie rozumiałem tego. To była po prostu zbyt dużo informacji, ale poszedłem i przeczytałem ją ponownie. – mma1480

+3

świetnie ... teraz wiem, dlaczego nazywa się Adler-32 –

Powiązane problemy