加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 从fread()故障中恢复的好方法是什么?

发布时间:2020-12-16 10:15:31 所属栏目:百科 来源:网络整理
导读:如果对fread()的调用返回0并且ferror()指示错误(相对于EOF),是否可以重试读取或是否更好地关闭并重新打开文件? 我无法完全重新开始 – 输入文件已被部分处理,无法撤消(比如我一次写出一个块到套接字,并且由于现有协议,没有办法告诉远程端,“没关系,我需要重
如果对fread()的调用返回0并且ferror()指示错误(相对于EOF),是否可以重试读取或是否更好地关闭并重新打开文件?

我无法完全重新开始 – 输入文件已被部分处理,无法撤消(比如我一次写出一个块到套接字,并且由于现有协议,没有办法告诉远程端,“没关系,我需要重新开始”).

我可以fclose()和fopen()文件,fseek()超过已经处理过的数据,并从那里继续fread() – 但这是必要的吗?

解决方法

没有“一刀切”的解决方案,因为不同的错误可能需要不同的处理.来自fread()的错误是不寻常的;如果您正确调用它,则错误可能表示导致FILE *处于奇怪错误状态的情况.在这种情况下,你最好调用fclose(),fopen(),fseek()来恢复状态.

如果您正在编写正在发生的事情,请提及您从ferror()获得的实际错误…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读