关于Zlib的uncompress函数出现Z_DATE_ERROR的

在刚使用uncompress函数时就出现过Z_DATE_ERROR的错误,研究好长时间也没研究出来,只盯着它的注释的一句话:Z_DATA_ERRORif the input data was corrupted or incomplete.意思是要解压的数据是坏了的、不完整的。当时很不理解这句话,之后也是经过多次测试调试才明白一点,这也只是我稍稍接触ZLIB时的理解,所以只能是自己的猜测:
要解压数据,必然是这些数据之前被compress压缩过,所以在压缩时一定是按了一定的结构进行压缩写入的,比如可能是被压缩后的数据前十个字节是保存文件名称的,但如果在解压这个数据时你从第二个字节开始读,那么读取是个字节必然与文件名称结构不符,自然就出现了”corrupted”or “incomplete”,所以返回了Z_DATA_ERROR错误来标记。
当时这样理解后并未及时总结,导致今天遇到此问题时竟又摸不着头脑了,所以今天记录,也是想坚持做些开发日志吧。

发表评论

邮箱地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *