ZLib Gzip API 检测 EOF?
EOF detection by ZLib Gzip API?
我有一个示例 Gzip Compressed Data | 100-length RNG Pad
。令人惊讶的是 zlib
GZip file API is able to detect EOF at the start of the n-length pad and not count it in. Try Online
我试着查看 header and source code,这些是我最好的猜测:
- 基于源代码 - 检测到由于遇到无效字节序列而导致的流损坏 - 因此
gzread
returns -1.
- 基于文件头 - 在最后一个
read
期间检测末尾的 CRC32,并检查其后相应的文件大小。如果事情符合它 returns EOF.
有人可以证实我的理解,即 (1) 确实发生了。如果是这种情况,我猜测我尝试的示例可能是基于随机字节序列的未定义行为。
如果您询问 zlib 是否检测到它正在获取应该是 gzip 流的随机数据,那么是的,它通常会基于违反 header 的情况在少量字节内执行此操作格式或压缩格式。
我有一个示例 Gzip Compressed Data | 100-length RNG Pad
。令人惊讶的是 zlib
GZip file API is able to detect EOF at the start of the n-length pad and not count it in. Try Online
我试着查看 header and source code,这些是我最好的猜测:
- 基于源代码 - 检测到由于遇到无效字节序列而导致的流损坏 - 因此
gzread
returns -1. - 基于文件头 - 在最后一个
read
期间检测末尾的 CRC32,并检查其后相应的文件大小。如果事情符合它 returns EOF.
有人可以证实我的理解,即 (1) 确实发生了。如果是这种情况,我猜测我尝试的示例可能是基于随机字节序列的未定义行为。
如果您询问 zlib 是否检测到它正在获取应该是 gzip 流的随机数据,那么是的,它通常会基于违反 header 的情况在少量字节内执行此操作格式或压缩格式。