常见的误解:文件的末尾有一个EOF字符



我在读"Carter的PC汇编语言",在第32页的脚注中看到了这个短语,这让我很困惑
如果我们假设文件结尾可能没有EOF(正如书中所说)是一个正确的说法,那么我们如何才能弄清楚文件的结尾在哪里
这也引发了另一个问题:fseek是否使用EOF在文件中来回?

PC=>^Z:EOF

在旧电脑时代,ctrl-Z是EOF文件中的信号。

在UNIX和其他现代系统下:读取stat.strongize后,EOF将被发送

p>来源http://www.drpaulcarter.com/cs/common-c-errors.php:

这个值是多少?EOF对学生的一个常见误解是文件末尾有一个特殊的EOF字符。没有什么特别的存储在文件末尾的字符。EOF是一个整数错误代码由函数返回。

嗯,EOF没有存储在文件的末尾,也不是charEOF是一条错误消息,当没有更多数据要读取时,读取函数会返回。这就是getchar返回int的原因——它可能返回一个转换为intchar,或者返回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系统。

相关内容

最新更新