为什么后面的数据读取会失败呢?
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读操作出错的原因。实际出错的时候,需要结合现象及代码综合分析才能得到准确的结果。
- 3 回答
- 0 关注
- 2566 浏览
添加回答
举报
0/150
提交
取消