2012-04-15 18 views

Antwort

44

compress() wird verwendet, um die Daten in einem einzigen Aufruf zu komprimieren und komprimiert immer auf das zlib-Format, die Daten abzulassen mit einem Zwei-Byte-Header und einem Prüfwert Anhänger Vier-Byte. compress() wird alleine verwendet.

deflate() wird verwendet, um Daten ein Stück zu einer Zeit, zu komprimieren und/oder in anderen Formaten wie gzip -wrapped oder roh und mit anderen Optionen wie Speicherebene und Kompressionsstrategien zu komprimieren.

Sie würden compress() verwenden, wenn Sie alle Daten auf einmal verfügbar und genügend Speicher für das Ergebnis, und Sie möchten das Standardkomprimierungsformat, Speichernutzung und Strategie. Andernfalls würden Sie deflate() verwenden.

deflate() wird nicht selbst verwendet. Sie müssen deflateInit() oder deflateInit2() verwenden, um die von deflate() verwendete Struktur z_stream zu initialisieren. Dann rufen Sie deflate() einmal oder mehrmals an, um Daten zu komprimieren und das Ergebnis zur Verfügung zu stellen. Am Ende wird deflateEnd() aufgerufen, um die in der Struktur verwendeten Speicherressourcen freizugeben. Sie können die Dokumentation unter zlib.h und unter http://zlib.net/zlib_how.html für weitere Informationen lesen.

+21

Mark Adler ist [definitiv die Autorität auf diesem] (http://en.wikipedia.org/wiki/Mark_Adler). – Xenon

+0

danke. Ich habe etwas davon gelesen, habe es aber zunächst nicht verstanden. Es waren einfach zu viele Informationen, aber ich habe es gelesen. – mma1480

+3

großartig ... jetzt weiß ich, warum es adler-32 heißt –