日期:2014-05-16  浏览次数:21214 次

fread函数使用出错
最近在使用fread时发现老是读不到数据,feof返回1,即读到了结尾,但实际上没有,因为刚刚rewind(fd)过,
只是读的文件是动态创建的,即creat创建后写入了数据,最后用fread读出来就出错了,有哪位大侠指点下,不胜感激!
代码:
  creat(.....)
  fopen(....)
  ............

rewind(fd);
memset(t_buff,0,60);
len=fread(t_buff,60,1,fd);
if(len<=0)
{
i=feof(fd);
printf("----------------err open------001--i=%d--------err=%x.\n",i,errno);
break;
}
打印结果:i=1,errno=2


------解决方案--------------------
探讨
最近在使用fread时发现老是读不到数据,feof返回1,即读到了结尾,但实际上没有,因为刚刚rewind(fd)过,
只是读的文件是动态创建的,即creat创建后写入了数据,最后用fread读出来就出错了,有哪位大侠指点下,不胜感激!
代码:
creat(.....)
fopen(....)
……

------解决方案--------------------
fopen 的参数都是什么?
------解决方案--------------------
是不是 fopen 以只写方式打开 ?
导致后续的fread出错?
------解决方案--------------------
fread之前先调用一下flush试试。