当我在PHP中使用文件函数时,我会检查EOF。我想知道EOF是否真的存在于文件中。当我创建一个空文本文件时,它显示0KB。 EOF如何存在于0KB的文件中?
答案 0 :(得分:9)
有一个文件结束控制字符(在ASCII字符集中它是CTRL + Z或26或0x1A),但实际上并不需要标记文件的结尾,因为80年代发布的操作系统。所有现代操作系统都将文件大小存储为目录结构中的元数据(确切格式取决于文件系统),高级文件访问功能将检查文件大小以决定何时向程序员指示EOF。
如果数据中存在文件结尾并且您启用了文本模式转换(在大多数语言中,这与控制NL< - > CRLF转换的设置相同),则文件访问可能当它击中那个EOF角色时停止。在二进制模式下,读取将继续进行,直到达到文件大小。
答案 1 :(得分:1)
在现代文件系统中,磁盘上没有实际的EOF字符。它通过返回4字节值而不是1字节值在一些文件读取函数中实现,但大多数函数不使用该概念。
答案 2 :(得分:0)
它不存在..但文件大小确实如此,这就是你知道eof在哪里