【问题标题】:zlib continue inflate after Z_STREAM_ENDzlib 在 Z_STREAM_END 之后继续膨胀
【发布时间】:2019-07-10 12:50:15
【问题描述】:

在获得Z_STREAM_END 状态后如何继续解码。如果您在Z_STREAM_END 之后调用inflate (),则不会有任何变化。 我需要在Z_STREAM_END 之后继续解码。但事实是字典在收到Z_STREAM_END 后被重置。结果,deflate格式的下一个数据包没有被解码,只有第一个字面量被解码,然后inflate()返回-3。在Z_STREAM_END 之后不应重置字典。

【问题讨论】:

  • 你到底想解码什么?
  • 自己解决了问题。

标签: zlib inflate


【解决方案1】:

这意味着压缩流已经结束。如果由于某种原因您希望在刚刚结束的压缩流之后有另一个压缩流,那么您需要再次调用inflateInit()inflateInit2() 以重新启动解压缩器。

【讨论】:

  • 感谢您的回答。但是如果我调用inflateInit(),字典会被重置吗?
  • 有趣,但是在 inflate() 之后,函数 inflateGetDictionary() 返回一个长度为零的字典。
  • 是的,滑动窗口被重置了。
猜你喜欢
  • 2019-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-10
  • 2014-07-25
  • 1970-01-01
相关资源
最近更新 更多