Posted on 2008-08-18 19:10
Prayer 阅读(894)
评论(0) 编辑 收藏 引用 所属分类:
C/C++
feof()的实现与平台有关。
在stdio.h中feof的定义:
#define _IOEOF 0x0010
#define feof(_stream) ((_stream)->_flag & _IOEOF)
由此可知,只有当fp->_flag & 0x0010为真时,才认为文件结束了。在VC里,只有当file position indicator(在Windows上是fp->_ptr)到了文件末尾,然后再发生读/写操作时,fp->_flag才会被置为含有_IOEOF,然后再调用feof(),才会得到文件结束的信息。并不是file position indicator一指到文件尾,feof()就认为文件结束。