我在读"Carter的PC汇编语言",在第32页的脚注中看到了这个短语,这让我很困惑
如果我们假设文件结尾可能没有EOF(正如书中所说)是一个正确的说法,那么我们如何才能弄清楚文件的结尾在哪里
这也引发了另一个问题:fseek是否使用EOF在文件中来回?
PC=>^Z:EOF
在旧电脑时代,ctrl-Z是EOF文件中的信号。
在UNIX和其他现代系统下:读取stat.strongize后,EOF将被发送
这个值是多少?EOF对学生的一个常见误解是文件末尾有一个特殊的EOF字符。没有什么特别的存储在文件末尾的字符。EOF是一个整数错误代码由函数返回。
嗯,EOF
没有存储在文件的末尾,也不是char
。EOF
是一条错误消息,当没有更多数据要读取时,读取函数会返回。这就是getchar
返回int
的原因——它可能返回一个转换为int
的char
,或者返回int
EOF
(这不是有效的char
,所以如果你得到了它,你可以确定你已经通过了文件的末尾)。
EOF未存储在文件中。EOF(通常定义为-1)由操作系统在没有更多数据可读取或发生输入错误时返回。因此,一旦到达文件末尾,必须点击EOF。
我对你书中的语句的猜测是,它的意思是"EOF is not necessarily be at the end of file but also possible to have it somewhere in the middle of a file".
。对于预期的输入错误,这是正确的。
在C代码的上下文中,EOF
只是一个指示,表明给定的输入流没有更多的数据可用。这是否对应于文件本身中的一个特殊EOF字符,取决于底层文件或I/O系统。