【发布时间】:2020-09-09 20:42:24
【问题描述】:
对于小文件,我可以获得zip_stat_t 信息,但如果它是 40Mb 大的文件,我不能。
zip_stat_t info;
zip_stat_index(zipfile, 544, ZIP_FL_ENC_GUESS, &info);
printf("%s\n", info.name);
例如打印info.name 会导致大文件(例如40mb 文件)出现段错误。一个 2Mb 的文件将毫无问题地打开。我如何获得info.name 的大小,例如,因为似乎 info 结构没有正确存储在 RAM 中?
如果我这样做 printf(strlen(info.name)) 会导致分段错误。
【问题讨论】:
-
第一个建议是检查 zip_stat_index 的返回值。 “返回-1并设置归档中的错误信息表示错误”(from here)。
-
zip_stat_index 返回 0