feof()的实现

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()就认为文件结束。

你可能感兴趣的:(实现)