为了账号安全,请及时绑定邮箱和手机立即绑定

C语言fread为什么会读取失败呢?

C语言fread为什么会读取失败呢?

SSM
烙印99 2019-02-14 15:11:30
为什么后面的数据读取会失败呢?   
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

fread是用来读取文件的函数,其形式为

size_t fread ( void *buffer, size_t size, size_t count, FILE *file) ;
功能为从文件指针file中,每次读取size长度数据,读取count次,并将结果存到buffer中。
其出错的可能原因包括:
1 文件没有打开,或打开失败。即文件指针非法。当文件不存在,或用户对文件没有读权限,目标文件被占用等情况下,打开文件会失败,这时file指针值为NULL。
2 文件打开时,并没有指定读属性。
3 文件IO错误。如在文件打开后,文件被其它程序强制删除,或取消可读属性等。
4 文件达到文件尾。如果文件已经读到文件尾,不存在size*count字节的可读数据,fread会出错。
5 传入的buffer非法。如buffer为空,或buffer拥有的空间不足以存储size*count字节的数据,导致越界访问。

以上即为常见的fread读操作出错的原因。实际出错的时候,需要结合现象及代码综合分析才能得到准确的结果。



查看完整回答
反对 回复 2019-03-26
  • 3 回答
  • 0 关注
  • 2359 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信