代码之家  ›  专栏  ›  技术社区  ›  tangy

zlib-gzip-api检测eof?

  •  0
  • tangy  · 技术社区  · 7 年前

    我有一个例子 Gzip Compressed Data | 100-length RNG Pad . 令人惊讶的是 zlib GZip file API 能够在N长度的焊盘开始时检测到EOF,而不将其计算在内。 Try Online

    我试着看 header source code 我最好的猜测是:

    1. 基于源代码 -检测由于遇到无效字节序列而导致的流损坏-因此 gzread 返回- 1。
    2. 基于文件头 -在最后一次 read 然后检查相应的文件大小。如果情况匹配,它会返回EOF。

    有没有人能证实我的理解,即(1)确实正在发生。如果是这种情况,我猜我尝试的示例可能是基于随机字节序列的未定义行为。

    0 回复  |  直到 7 年前
        1
  •  1
  •   Mark Adler    7 年前

    如果您询问zlib是否检测到它正在获取应该是gzip流的随机数据,那么是的,它通常会在基于违反头格式或deflate格式的少量字节内执行此操作。

    推荐文章