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