读书人

zlib解压uncompress在IPhone4上都没有

发布时间: 2013-03-26 09:54:34 作者: rapoo

zlib解压uncompress在IPhone4上都没问题,在IPhone3GS上总是失败
有用过zlib解压的么?
我调用uncompress在IPhone4上都没问题
在IPhone3GS (ios4.2)上就不行,总是解压失败 看返回值-5,看意思是说目标内存不够,我设的内存已比需要大很多也还是报这个错,有没有人碰到过这样的啊?
[解决办法]
-5应该是buf错误:
Z_BUF_ERROR


const char * const z_errmsg[10] = {
"need dictionary", /* Z_NEED_DICT 2 */
"stream end", /* Z_STREAM_END 1 */
"", /* Z_OK 0 */
"file error", /* Z_ERRNO (-1) */
"stream error", /* Z_STREAM_ERROR (-2) */
"data error", /* Z_DATA_ERROR (-3) */
"insufficient memory", /* Z_MEM_ERROR (-4) */
"buffer error", /* Z_BUF_ERROR (-5) */
"incompatible version",/* Z_VERSION_ERROR (-6) */
""};


所以,你应该检查buf设置的是否正确。
[解决办法]
截取代码注释部分:
if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible
(for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not
fatal, and deflate() can be called again with more input and more output
space to continue compressing.

可能是buf不够了。

[解决办法]
源代码中搜索Z_BUF_ERROR也可能得到错误的原因

读书人网 >Iphone

热点推荐