【发布时间】:2023-08-10 23:41:01
【问题描述】:
使用zlib 时,可以处理deflate() 和inflate() 的最小和最大输入缓冲区大小是多少?
【问题讨论】:
标签: c buffer zlib deflate inflate
使用zlib 时,可以处理deflate() 和inflate() 的最小和最大输入缓冲区大小是多少?
【问题讨论】:
标签: c buffer zlib deflate inflate
最小缓冲区大小为0。关于最大大小,请参阅zlib FAQ:
zlib 可以处理大于 4 GB 的数据吗?
是的。
inflate()和deflate()将正确处理任意数量的数据。inflate()或deflate()的每次调用仅限于输入和输出块的最大值,可以存储在编译器的“unsigned int”类型中,但对块的数量没有限制。但请注意,strm.total_in和strm_total_out计数器可能限制为 4 GB。这些计数器是为了方便而提供的,inflate()或deflate()不会在内部使用。应用程序可以轻松设置自己的计数器,在每次调用inflate()或deflate()后更新,以计算超过 4 GB。
【讨论】: