EOF概念常常使人迷惑。
首先我们要理解并没有像EOF字符这样的东西。
进一步讲EOF是由内核检测到的一种条件。
应用程序在它接收到由read函数返回的零返回码时,它就会发现EOF条件。
对于磁盘文件,当文件位置超出文件长度时,会发生EOF。
对于因特网连接,当一个进程关闭连接它的那一端时,会发生EOF。
连接另一端的进程在试图读取流中的最后一个字节之后的字节时,会检测到EOF。
也就是说EOF实际上是一种条件,一种Unix I/O的返回码,表示文件结尾。函数调用者用于获悉到文件到结尾了。
对于内核而言一切皆文件,那么内核的read函数有个返回值用于表示EOF。
读操作就是从文件拷贝n>0字节到存储器。
从当前文件位置k开始,然后将k增加到k+n。
给定一个大小为m字节的文件,当k大于m时会触发一个称为EOF(end of file)的条件。
应用程序能够检测到这个条件。
在文件结尾并没有明确的EOF符号。