【问题标题】:What is the minimum/maximum input size for deflate() or inflate() in zlib?zlib 中 deflate() 或 inflate() 的最小/最大输入大小是多少?
【发布时间】:2023-08-10 23:41:01
【问题描述】:

使用zlib 时,可以处理deflate()inflate() 的最小和最大输入缓冲区大小是多少?

【问题讨论】:

    标签: c buffer zlib deflate inflate


    【解决方案1】:

    最小缓冲区大小为0。关于最大大小,请参阅zlib FAQ

    zlib 可以处理大于 4 GB 的数据吗?

    是的。 inflate()deflate() 将正确处理任意数量的数据。 inflate()deflate() 的每次调用仅限于输入和输出块的最大值,可以存储在编译器的“unsigned int”类型中,但对块的数量没有限制。但请注意,strm.total_instrm_total_out 计数器可能限制为 4 GB。这些计数器是为了方便而提供的,inflate()deflate() 不会在内部使用。应用程序可以轻松设置自己的计数器,在每次调用 inflate()deflate() 后更新,以计算超过 4 GB。

    【讨论】:

      最近更新 更多