操作系统实验三__文件管理.pdf

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《计算机操作系统》课程实验报告

题目文件管理

学院:计算机学院

专业:计算机科学与技术

姓名

班级

学号

2016年12月22日

1

实验三文件管理

1.实验目的:

编写一个简单的二级文件系统实现程序,加深对文件系统的内部功能和内部

实现的理解。要求模拟采用二级目录结构的磁盘文件系统的文件操作能实现相应

的命令,用输入命令来模拟用户程序中调用的文件操作。

2.实验内容:

最基本的文件操作

(1)创建文件

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

系统的目录中,为之建立一个目录项。目录项中应该记录新文件的文件名及其在

外存的地址等属性。

(2)删除文件

当已不再需要某文件时,可将它从文件系统中删除。在删除时,系统应该先

从目录中找到要删除的文件的目录项,使之成为空项,然后回收该文件所占用的

存储空间。

(3)读文件

在读一个文件时,须在相应的系统调用中给出文件名和应该读入的内存目标

地址。此时,系统同样要查找目录,找到制定的目录项,从中得到被读文件在外

存中的位置。在目录项中,还有一个指针用于对文件的读/写。

(4)写文件

在写一个文件时,须在相应的系统调用中给出该文件名及该文件在内存中的

(源)地址。为此,也同样须先查找目录,找到指定文件的目录项,在利用目录

中的写指针进行写操作。

(5)截断文件

如果一个文件的内容已经陈旧而需要全部更新文件的内容时,一种方法是将

此文件删除,再重新创建一个新文件。但如果文件名及其属性均无改变时,则可

采取另一种所谓的截断文件的方法,此即将原有文件的长度设置为0,或说放弃

原有的文件内容。

(6)设置文件的读/写位置

2

前述的文件读/写操作,都只提供了对文件顺序存取的手段,即每次都是从

文件的始端读或写。设置文件读/写位置的操作,用于设置文件读/写指针的位置,

以便每次读/写文件时,不是从其始端而是从所设置的位置开始操作。也正因如

此,才能改顺序存取为随机存取。

3.设计实现:

1)流程图

2)详细设计

源代码

#includestdio.h

#includestring.h

#includeconio.h

#includestdlib.h

#includetime.h

#defineMaxUser100//定义最多有100个用户

3

#defineMaxDisk512*1024//定义磁盘空间大小

#definecommandAmount//对文件操作的指令数

//存储空间管理有关结构体和变量

chardisk[MaxDisk];//模拟512K的磁盘存储空间

typedefstructdistTable//磁盘块结构体

{

intmaxlength;

intstart;

intuseFlag;

distTable*next;

}diskNode;

diskNode*diskHead;

typedefstructfileTable//文件快结构体

{

charfileName[10];

intstart;//文件在磁盘存储空间的起始地址

intlength;//文件内容长度

intmaxlength;//文件的最大长度

charfileKind[3];//文件的属性--读写方式

structtm*timeinfo;

boolopenFlag;//

文档评论(0)

***** + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体社旗县兴中文具店(个体工商户)
IP属地河南
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档