正确设置和使用 zlib
Setting up and using zlib properly
我正在研究 zlib
,在阅读 zlib_how 之后我还有几个问题。据我所知, deflateInit
应该在调用任何 deflate()
之前调用,这没问题,但是当我打算多次重用同一个流时会发生什么?
我是否应该在每次完成压缩时调用 deflateEnd
,然后在每次调用压缩并额外调用 deflateInit
时重新初始化?内部缓冲区动态分配怎么样?
我经常看到 init 和 end malloc/free,是否可以将其配置为在调用之间重用内部缓冲区?
您应该使用 deflateReset()
而不是 deflateEnd()
后跟 deflateInit()
,以避免不必要的 free()
和 malloc()
。
您还应该阅读 zlib.h 中的文档,在那里您会发现这一点。
我正在研究 zlib
,在阅读 zlib_how 之后我还有几个问题。据我所知, deflateInit
应该在调用任何 deflate()
之前调用,这没问题,但是当我打算多次重用同一个流时会发生什么?
我是否应该在每次完成压缩时调用 deflateEnd
,然后在每次调用压缩并额外调用 deflateInit
时重新初始化?内部缓冲区动态分配怎么样?
我经常看到 init 和 end malloc/free,是否可以将其配置为在调用之间重用内部缓冲区?
您应该使用 deflateReset()
而不是 deflateEnd()
后跟 deflateInit()
,以避免不必要的 free()
和 malloc()
。
您还应该阅读 zlib.h 中的文档,在那里您会发现这一点。