c - linux如何检测文本文件的EOF?

标签 c linux

我想知道 Linux 如何检测文本文件的结尾。 是否所有文本文件都以 NULL 字节结尾,Linux 利用了这一点?

最佳答案

现代操作系统,如 Linux,不使用文件内容来检测文件结束,它们将文件长度存储在文件系统中并跟踪文件位置以确定是否有更多内容可供读取.

事实上,文本文件根本不应该包含空字节。它们通常以行尾标记结束(\n 在 Linux 和 OS/X 上,CR/LF 在遗留系统上)。此规则的一个值得注意的异常(exception)是空文件。

当从终端窗口等设备读取时,操作系统依靠设备驱动程序提供有关文件结尾的信息,在终端的情况下,用户可以通过输入系统特定的命令来发出信号组合键,例如 Unix 系统上的 CtrlD 和 Microsoft 上的 CtrlZEnter操作系统。

关于c - linux如何检测文本文件的EOF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58783734/

相关文章:

C预处理器它是如何工作的

c - 为什么我不能在 #if 中使用 sizeof()?

c - 将指向字符数组的指针传递给函数?

linux - 服务器端node.js请求无法连接到主机

c# - 为什么ubuntu中的NET Core 3.1 BackgroundWorker无法访问环境变量?

C# 在 Linux 中运行 tesseract(或任何命令)

c - 再次 float

C:混淆一个整数

linux - 无法在 Shell 脚本中重命名文件

sql-server - 将数据库部署到 Docker 容器 microsoft/mssql-server-linux