来自Tanenbaum的现代操作系统关于文件操作:
- 打开。在使用文件之前,进程必须打开它。打开调用的目的是允许系统获取属性和列表 磁盘地址到主存储器中,以便以后的呼叫快速访问。
- 关闭。完成所有访问后,不再需要属性和磁盘地址,因此应该关闭文件以释放 内部表空间。
醇>
什么是"内部表"?
我没有找到"内部表"在我阅读书中的引文之前定义的。它是否也被其他名称调用?
是在主内存中,还是专门为文件创建的?
感谢。
答案 0 :(得分:1)
对于每个打开的文件,操作系统都维护一个服务结构,用于跟踪该文件,文件位置,打开模式等。一旦关闭文件,就不再需要该结构并将其丢弃。这就是那句话所指的 - 在某些操作系统上,这些操作系统将使用一些名为内部表空间的东西来完成,但这是一个实现细节。
Here's对相关问题的一个很好的答案。
答案 1 :(得分:1)
通常,支持多级数据结构来访问文件。在unix中,通常有两个级别:操作系统和库。在VMS中,有三个级别。系统服务,RMS和库。
在系统级别,文件成为逻辑设备。 (非常,Unix会跟踪此级别的读取位置。)
可以在某些系统(IBM,VMS)中找到记录级别访问权限。在文件系统支持多个文件结构(例如,流,固定,变量,索引)的情况下使用。 Unix只会流式传输。它也可以处理缓冲。
库访问提供特定于语言的功能。 C-RTL函数fopen()返回您通常访问的FILE *结构。 open()函数是Unix系统级函数(在某些系统上实现为库函数)。
这些层中的每一层都会创建需要释放的其他数据结构。