当我在 PHP 中使用文件函数时,我会检查 EOF。我想知道 EOF 是否真的存在于文件中。当我创建一个空文本文件时,它显示 0KB。EOF 如何存在于 0KB 的文件中?
问问题
3705 次
3 回答
11
有一个文件结束控制字符(在 ASCII 字符集中它是 CTRL+Z 或 26 或 0x1A),但自从 80 年代发布的操作系统以来,实际上并不需要它来标记文件的结束。所有现代操作系统都将文件大小作为元数据存储在目录结构中(具体格式取决于文件系统),高级文件访问函数将检查文件大小以决定何时向程序员指示 EOF。
如果数据中有文件结尾并且您打开了文本模式翻译(在大多数语言中,这与控制 NL <-> CRLF 转换的设置相同),则文件访问可能会在遇到该文件时停止EOF 字符。在二进制模式下,读取将继续进行,直到达到文件大小。
于 2010-03-09T00:31:18.887 回答
1
在现代文件系统中,磁盘上没有实际的 EOF 字符。它在某些文件读取函数中通过返回 4 字节值而不是 1 字节值来实现,但大多数函数不使用该概念。
于 2012-07-04T03:13:45.200 回答
0
它不存在..但是文件大小确实存在,这就是您知道 eof 在哪里的方式
于 2010-03-09T00:31:46.587 回答