6.2.7 文件的使用
用户在使用文件系统时,可以利用操作系统提供的系统调用(或称广义指令)来完成具体的操作。下面是几个常用的文件系统调用。
1.建立文件
建立文件系统调用的一般格式为:
create(文件名,参数表)
用户提供所要创建文件的文件名及若干参数,系统为这一新创建的文件分配一个文件控制块,根据用户提供的参数及系统控制需要填写文件控制块中的有关项。有的系统还返回给用户一个文件控制块描述符,以后用户使用该文件控制块描述符存取该文件。
2.打开文件
如果使用文件,首先要打开,以建立用户和文件的联系。
打开文件系统调用的一般格式为:
open(文件名,读写方式)
读写方式可为读、写和既读又写等。系统主要完成以下工作:
1)检查该文件名所对应的文件控制块是否已在内存,如果不在,则将其调入内存,这时文件控制块称为“活跃的”。
2)检查操作合法性,例如,若该文件为只读文件,但用户却将“读写方式”置为写,则系统不予打开。
有些系统中在执行完系统调用open之后返回用户一个文件描述符,以后用户就使用文件描述符而不是文件名对该文件读、写。
3.读文件
打开文件后,就可以读取文件中的信息。读文件系统调用的一般格式为:
read(文件名,记录键,内存位置)
表示把指定文件中给定键值的记录读入内存指定单元。
4.写文件
写文件系统调用的一般格式为:
write(文件名,记录键,内存位置)
表示把内存中指定单元的数据作为指定键值的一个记录写入指定文件中,系统还将为其分配物理块,以便把记录信息写在外存上。
5.关闭文件
若文件暂时不用,则应将它关闭。文件关闭后一般不能存取,若要存取,则必须再次打开。关闭文件系统调用的一般格式为:
close(文件名)
系统根据用户提供的文件名或文件描述符,在该文件的文件控制块上做修改。例如,将该文件的共享用户数减1,减1后若值为0,则将文件控制块置上“非活跃”标志,若该文件控制块内容被修改过,则要写回外存。
6.撤销文件
撤销文件系统调用的一般格式为:
delete(文件名)
系统根据用户提供的文件名或文件描述符,检查此次撤销的合法性,若合法,则收回该文件所占用的文件控制块及物理块等资源。