操作系统如何识别文本文件的结尾?

时间:2016-08-26 06:37:09

标签: c operating-system eof

例如,有一个名为" Hello.txt"

的文本文件

Hello World!

然后操作系统(我使用MS-DOS)如何识别此文本文件的结尾?在'!'之后隐藏某种字符或符号?哪个表示文件结束?

1 个答案:

答案 0 :(得分:3)

如果您使用MS-Dos,那么在字符串末尾确实存在特殊字符的可能性有些可能性。 MS-Dos源于Tim Paterson的QDos,他们将其编写为尽可能与当时占主导地位的CP / M兼容。作为8位计算机的操作系统,它通过仅计算文件使用的磁盘扇区数来跟踪文件大小。这使文件大小始终是128字节的倍数。

这需要一个hack来指示文本文件的真实结尾,因为它可能位于扇区的中间,它使用Ctrl + Z控制字符(字符代码0x1A)。这需要语言运行时实现再次将其删除,并在遇到该字符时声明文件结束。 Ctrl + Z并不完全被遗忘,当您在Windows控制台中键入它以终止输入时,它仍然有效。与Unix终端中的Ctrl + D比较。

文件中是否存在实际取决于创建文件的程序。哪个必须是MS-Dos程序以及附加Ctrl + Z.当然不是必需的。 Paterson对CP / M进行了改进,以消除其中的一些限制,这有助于提供更多可用的地址空间(1 MB对64 KB),MS-Dos跟踪实际的字节数一份文件。因此它始终可靠地指示文件的真实结束。这可能是您问题的最准确答案。

古代历史,明智地投入时间。