对于FILE*流,如果我读取尽可能多的数据,feof(stream)会返回非零值.然后,如果我fclose流,它feof(流)将继续返回一个非零值?是保证吗?
在一个已关闭的文件上调用feof()是没有意义的(实际上比没有意义的更糟糕 - 它是未定义的,因此任何事情都可能发生).
从C标准:
关闭关联文件(包括标准文本流)后,指向FILE对象的指针的值是不确定的.
和
成功调用fclose函数会导致流指向的流被刷新,并关闭相关文件.流的任何未写入的缓冲数据都被传送到主机环境以写入文件; 任何未读缓冲的数据都将被丢弃.无论调用是否成功,流都将与文件解除关联,并且setbuf或setvbuf函数设置的任何缓冲区都将从流中取消关联(如果已自动分配,则取消分配).