当我在PHP中使用文件函数时,我会检查EOF。我想知道EOF是否实际存在于文件中。当我创建一个空的文本文件时,它显示为0KB。那么在一个0KB的文件中,EOF是如何存在的呢?
在ASCII字符集中,有一个文件结束控制字符(CTRL+Z 或 26 或 0x1A),但自80年代发布的操作系统以来,它实际上已不再需要用于标记文件的结尾。所有现代操作系统都将文件大小作为元数据存储在目录结构中(确切的格式取决于文件系统)。高级文件访问函数会检查文件大小,以便决定何时向程序员指示EOF。
如果在数据中存在EOF,并且您开启了文本模式转换(在大多数语言中,这是控制NL <-> CRLF转换的相同设置),则文件访问可能会在遇到该EOF字符时停止。在二进制模式下,读取将一直持续到达到文件大小。
它并不存在,但文件大小存在,这就是你知道 EOF 位置的方式。