zlib中的deflate()
和函数有什么区别?compress()
我浏览了在线示例,其中一些使用了 deflate,而另一些则使用了 compress。
我应该如何决定使用哪种情况而不是另一种情况?
zlib中的deflate()
和函数有什么区别?compress()
我浏览了在线示例,其中一些使用了 deflate,而另一些则使用了 compress。
我应该如何决定使用哪种情况而不是另一种情况?
compress()
用于在单次调用中压缩数据,并且始终压缩为zlib格式,这是一种带有 2 字节标头和 4 字节校验值尾部的压缩数据。 compress()
是单独使用的。
deflate()
用于一次压缩数据块,和/或压缩为其他格式,例如gzip -wrapped 或raw,以及其他选项,例如内存级别和压缩策略。
compress()
如果您同时拥有所有可用数据并且有足够的内存来保存结果,并且您想要默认的压缩格式、内存使用和策略,您会使用。否则,您将使用deflate()
.
deflate() 本身不使用。您需要使用deflateInit()
或deflateInit2()
初始化所z_stream
使用的结构deflate()
。然后您调用deflate()
一次或多次以获取数据以压缩并提供结果。最后,deflateEnd()
调用释放结构中使用的内存资源。您可以阅读zlib.h和http://zlib.net/zlib_how.html中的文档以获取更多信息。