...
rewind(ftmpname);
if (stat(tmpname, &st_file)==-1)
longjmp(Berror, (ETMPSTAT) );
tmpsize = st_file.st_size;
i = 0;
while (i<tmpsize)
{
n = fread(buf, 1, (READ_CONST), ftmpname );
write_byte(farch, buf, n);
i+=n;
}
...
fread
总是返回0.我不知道出了什么问题。我以前做过倒带,但没有帮助。抱歉我的英文。
答案 0 :(得分:2)
如果你不知道什么是错的,你必须检查错误。以下是手册页的内容:
返回值
fread()和fwrite()返回成功读取或写入的项目数 (即,不是字符数)。如果发生错误,或文件结束 到达时,返回值是短项目计数(或零)。
fread()不区分文件结束和错误,并且调用者必须使用 feof(3)和ferror(3)确定发生了什么。
那你为什么不用那些能告诉你究竟出了什么问题的函数呢?