[英]How does linux detect the EOF of a text file?
我想知道 Linux 如何检测文本文件的结尾。 所有文本文件是否都以 NULL 字节结尾,而 Linux 是否利用了这一点?
现代操作系统,例如 Linux,不使用文件内容来检测文件的结尾,它们将文件长度存储在文件系统中并跟踪文件 position 以确定是否有更多内容可供读取。
事实上,文本文件根本不应该包含 null 字节。 它们通常以行尾标记结束( linux 上的\n
和 OS/X,旧系统上的CR
/ LF
)。 此规则的一个显着例外是空文件。
从诸如终端 window 之类的设备读取时,操作系统依靠设备驱动程序提供有关文件结尾的信息,在终端的情况下,用户可以通过输入系统特定的组合键(例如Ctrl )来发出信号unix 系统上的D和 Microsoft 操作系统上的Ctrl Z Enter 。
从程序来看, EOF
可以使用下面的API检测
read()
返回 0。getchar()
返回 -1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.