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

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

ID:47493990

大小:375.00 KB

页数:35页

时间:2020-01-12

操作系统实验三__文件管理_第1页
操作系统实验三__文件管理_第2页
操作系统实验三__文件管理_第3页
操作系统实验三__文件管理_第4页
操作系统实验三__文件管理_第5页
资源描述:

《操作系统实验三__文件管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《计算机操作系统》课程实验报告 题目文件管理学院:计算机学院 专业:计算机科学与技术姓名班级学号 2016年12月22日35实验三文件管理1.实验目的:编写一个简单的二级文件系统实现程序,加深对文件系统的内部功能和内部实现的理解。要求模拟采用二级目录结构的磁盘文件系统的文件操作能实现相应的命令,用输入命令来模拟用户程序中调用的文件操作。2.实验内容:最基本的文件操作(1)创建文件在创建一个新文件时,系统首先要为新文件分配必要的外存空间,并在文件系统的目录中,为之建立一个目录项。目录项中应该记录新文件的文件名及其在外存的

2、地址等属性。(2)删除文件当已不再需要某文件时,可将它从文件系统中删除。在删除时,系统应该先从目录中找到要删除的文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。(3)读文件在读一个文件时,须在相应的系统调用中给出文件名和应该读入的内存目标地址。此时,系统同样要查找目录,找到制定的目录项,从中得到被读文件在外存中的位置。在目录项中,还有一个指针用于对文件的读/写。(4)写文件在写一个文件时,须在相应的系统调用中给出该文件名及该文件在内存中的(源)地址。为此,也同样须先查找目录,找到指定文件的目录项,在利用目录

3、中的写指针进行写操作。(5)截断文件如果一个文件的内容已经陈旧而需要全部更新文件的内容时,一种方法是将此文件删除,再重新创建一个新文件。但如果文件名及其属性均无改变时,则可采取另一种所谓的截断文件的方法,此即将原有文件的长度设置为0,或说放弃原有的文件内容。(6)设置文件的读/写位置35前述的文件读/写操作,都只提供了对文件顺序存取的手段,即每次都是从文件的始端读或写。设置文件读/写位置的操作,用于设置文件读/写指针的位置,以便每次读/写文件时,不是从其始端而是从所设置的位置开始操作。也正因如此,才能改顺序存取为随机存

4、取。3.设计实现:1)流程图2)详细设计源代码#include#include#include#include#include#defineMaxUser100//定义最多有100个用户35#defineMaxDisk512*1024//定义磁盘空间大小#definecommandAmount//对文件操作的指令数//存储空间管理有关结构体和变量chardisk[MaxDisk];//模拟512K的磁盘存储空间typedefst

5、ructdistTable//磁盘块结构体{intmaxlength;intstart;intuseFlag;distTable*next;}diskNode;diskNode*diskHead;typedefstructfileTable//文件快结构体{charfileName[10];intstart;//文件在磁盘存储空间的起始地址intlength;//文件内容长度intmaxlength;//文件的最大长度charfileKind[3];//文件的属性--读写方式structtm*timeinfo;bool

6、openFlag;//判断是否有进程打开了文件};intused=0;//定义MFD目录中用已有的用户数//两级目录结构体typedefstructuser_file_directory//用户文件目录文件UFD{fileTable*file;35user_file_directory*next;}UFD;typedefstructmaster_file_directory//主目录文件{charuserName[10];charpassword[10];UFD*user;}MFD;MFDuserTable[MaxUs

7、er];intuserID=-1;//用户登录的ID号,值为-1时表示没有用户登录//文件管理voidfileCreate();//创建文件voidfileDelet();//删除文件voidfileWrite();//写文件voidfileRead();//读文件voidfileRename();//重命名文件voidfileFind();//查询文件voidfileDir();//显示某一用户所有文件voidfileClose();//关闭已打开的文件voidfileChange();//修改文件的读写方式intr

8、equestDist(int&stratPostion,intmaxlength);//磁盘分配查询voidinitDisk();//初始化磁盘voidfreeDisk(intstartPostion);//磁盘空间释放voiddiskShow();//显示磁盘使用情况voidinitFile();35//用户管理voiduser

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。