是EOF是一个特殊的字节序列,它位于每个文件的末尾,还是内核通知的异常(中断)?
答案 0 :(得分:11)
很久以前在DOS机器上它曾经由^Z
指示,但现在它是内核到达文件末尾并在程序尝试进一步阅读时通知程序。
答案 1 :(得分:1)
我已经使用ASCII EOF字符将数据文件分成人类可读的标题,然后是二进制数据。这使得机械工程师从测试中所需的一切都保存在一个文件中,同时保持它足够小以适应软盘。 (这是几年前!)EOF角色告诉大多数文本显示程序停止。任何想要快速浏览文件头的人都可以在命令shell中使用“print”命令(就是这样吗?)。
这些天来,EOF字符大部分都没有用在文件中,至少在我居住的世界的一小部分。实际上,除了NUL,ESC和CR / LF之外,没有任何ASCII控制字符可以使用。
EOF在某些流媒体协议中可能有某些用途,但这不在我的专业知识之内,所以我将其留给其他人来解决这个问题。
答案 2 :(得分:0)
EOF是C stdio库返回的特殊代码,表示没有更多数据可以从FILE
读取。不同的操作系统有自己的方式来记录文件的大小/结束以及它们自己将其返回给用户程序的方式,该方法将由该操作系统上的C标准库实现转换为EOF返回码。