9.8 文件操作
为使用户能方便、灵活地使用文件,文件系统通常提供使用文件的有关系统调用命令。这些有关文件的系统调用命令描述了文件系统呈现在用户面前的面貌。命令的数目及其功能取决于操作系统环境。一组最小的功能集如表 9.5 所示。
表 9.5 文件操作命令
名 字 |
功 能 |
create |
创建一个新文件到系统目录 |
delete |
从系统目录中撤消一个文件 |
rename |
在系统目录中改变文件的名字 |
file_attributes |
设置文件属性 |
open |
在用户和文件(或设备)之间建立一个逻辑通路 |
close |
在用户和文件(或设备)之间撤消一个逻辑通路 |
write |
写到一个文件(或设备)上 |
read |
从一个文件(或设备)读入数据信息 |
directory_read |
directory read |
disk_space |
确定在一个给定设备上可利用的磁盘区域的大小 |
link |
从一个文件到其他文件之间创建一个逻辑通道 |
unlink |
撤消到文件的逻辑通道 |
file_date |
改变文件的 date time 域 |
有关的文件操作命令可以在各种系统的使用说明书中查到,这里仅对“打开文件”和“关闭文件”命令作一简单介绍。
操作系统需要处理大量的用户文件,而要访问一个信息文件需要多次查寻各种目录。通常的做法是将大量的文件目录组织成文件,称为“目录文件”,它与文件一起存放在文件存储器上。目录文件是用户和文件管理的接口,是系统查找用户文件的有效工具,它的结构和管理直接影响到文件系统的实现和效率。由于文件目录在辅存上,如要存取文件时都要到辅存上去查录目录,那颇为费时的。但是,如果把整个目录在所有时间内都放在主存,则要占用大量的存储空间,显然这也是不可取的,因为目录数可能很多,表目总数可达成千上万。实际上,在一段时间内使用的文件数总是有限的,因而也仅涉及到少量的目录表目。所以,只需将目录文件中当前正需要使用的那些文件的目录表目复制到主存中。这样既不占用太多的主存空间,又可显著地减少查寻目录的时间。为此,大多数操作系统把目录文件和用户的信息文件一样看待,能对它进行读写操作。相应地,系统为用户提供了两种特殊的文件操作:“打开文件”和“关闭文件”操作。所谓找开文件就是把该文件的有关目录表目复制到主存中约定的区域,建立用户和这个文件的联系。所谓关闭文件就是用户宣布这个文件当前不再使用,系统将其主在主存中的相应目录表删去,因而也就切断了用户同这个文件的联系。
若一个文件有关的目录表自己被复制到主存,则称它为已打开的(或活动的)文件。在主存中存放这些目录表目的区域可形成一张活动文件表。
当用户访问一个已打开的文件时,系统不用到辅存上去查目录,而只要查找活动文件表就可得到该文件的文件说明。文件一次被打开后,可多次使用,直到壮志凌云或撤消该文件为止。
|