文件操作

----- 用户通过文件系统所提供的系统调用实施对文件的操作。

----- 最基本的文件操作有:创建文件、删除文件、读文件、写文件、截断文件设置文件的读/写位置。

但对于一个实际的OS,为了方便用户使用文件而提供了更多的对文件的操作,如打开和关闭一个文件及改变文件名等操作。

1、最基本的文件操作

-- 1)创建文件。

在创建一个新文件时,系统首先要为新文件分配必要的外存空间,并在文件系统的目录中,为之建立一个目录项

目录项中应记录新文件的文件名及其在外存的地址等属性。

-- 2)删除文件。当已不再需要某文件时,可将它从文件系统中删除。

在删除时,系统应先从目录中找到要删除文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。

-- 3)读文件。在读一个文件时,需在相应系统调用中给出文件名和应读入的内存目标地址

此时,系统同样要查找目录,找到指定的目录项,从中得到被读文件在外存中的位置。在目录项中,还有一个指针用于对文件的读/写。

-- 4)写文件。在写一个文件时,需在相应系统调用中给出该文件名及该文件在内存中的(源)地址。

为此,也同样需先查找目录,找到指定文件的目录项,再利用目录中的写指针进行写操作。

-- 5)截断文件。如果一个文件的内容已经陈旧而需要全部更新时,一种方法是将此文件删除,再重新创建一个新文件。

但如果文件名及其属性均无改变时,则可采取另一种所谓的截断文件的方法,即将原有文件的长度置为0。(放弃原有的文件内容)

-- 6)设置文件的读/写位置。

未设置时,只提供对文件顺序存取的手段,即每次都是从文件的始端读或写。

设置文件读/写位置的操作,用于设置文件读/写指针的位置,以便每次读/写文件时,不是从其始端而是从所设置的位置开始操作。

也正因如此,才能改顺序存取为随机存取

2、文件的“打开”和“关闭”操作

当前OS所提供的大多数对文件的操作,其过程大致分为两步:

第一步:通过检索文件目录来找到指定文件的属性及其在外存上的位置

第二步:对文件实施相应的操作,如读文件或写文件等。

当用户要求对一个文件实施多次读/写或其它操作时,每次都要从检索目录开始。为了避免多次重复地检索目录,在大多数OS中都引入了

“打开”(open)这一文件系统调用,当用户第一次请求对某文件进行操作时,先利用open系统调用将该文件打开。

所谓“打开”,是指系统将指明文件的属性(包括该文件在外存上的物理地址)从外存拷贝到内存打开文件表的一个表目中,并将该表目的

编号(或称为索引)返回给用户。以后,当用户再要求对该文件进行相应的操作时,便可利用系统所返回的索引号向系统提出操作请求。

系统这时便可直接利用该索引号到打开文件表中去查找,从而避免了对该文件的再次检索。这样不仅节省了大量的检索开销,也显著的

提高了对文件的操作速度。如果用户已不再需要对该文件实施相应的操作时,可利用“关闭”(close)系统调用来关闭此文件,OS将会把

文件从打开文件表中的表目上删除掉。

3、其它文件操作

---- 为了方便用户使用文件,通常,OS都提供了数条有关文件操作的系统调用,可将这些调用分成若干类。

最常用的一类是:有关对文件属性进行操作的,即允许用户直接设置和获得文件的属性,如改变已有文件的文件名、改变文件的拥有者

(文件主),改变对文件的访问权,以及查询文件的状态(包括文件类型、大小和拥有者以及对文件的访问权等)。

另一类是有关目录的。如创建一个目录,删除一个目录,改变当前目录和工作目录等;此外,还有用于实现文件共享的系统调用和用于对

文件系统进行操作的系统调用等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值