c打开文件可以以二进制打开,此时读取的不是字符数据,而是二进制数据,当然这时候用作字符型数据的结尾0会失效,因为你无法保证文件数据不存在长字节数据0或者-1之类的数值,EOF是c为了处理这种问题而作出的定义,用于指示文件流到达末尾,一般用作未知长度的数据流结尾标识,读取到此字符就表示文件已到达末尾,实际上它依赖于系统实现,而不是一个确切的数值或者字符,这有点类似声明的变量名,你的变量名实际上并不会带进二进制可执行文件,一样的道理
很多文件功能并非c自身的运行时环境实现的,而是依赖系统实现,系统这些功能有系统自己的游戏规则,你必须遵守,除非你自己手动在无系统环境实现这一切(然而到时候你又要遵守硬件和io的游戏规则)
很多文件功能并非c自身的运行时环境实现的,而是依赖系统实现,系统这些功能有系统自己的游戏规则,你必须遵守,除非你自己手动在无系统环境实现这一切(然而到时候你又要遵守硬件和io的游戏规则)