- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 35
《计算机操作系统》课程实验报告
?
题目
文件管理
学 院:
计算机学院?
专 业:
计算机科学与技术
姓名
班级
学号
?
2016年 12月22日
实验三 文件管理
1.实验目的:
编写一个简单的二级文件系统实现程序,加深对文件系统的内部功能和内部
实现的理解。要求模拟采用二级目录结构的磁盘文件系统的文件操作能实现相应的命令,用输入命令来模拟用户程序中调用的文件操作。
2.实验内容:
最基本的文件操作
(1)创建文件
在创建一个新文件时,系统首先要为新文件分配必要的外存空间,并在文件系统的目录中,为之建立一个目录项。目录项中应该记录新文件的文件名及其在外存的地址等属性。
(2)删除文件
当已不再需要某文件时,可将它从文件系统中删除。在删除时,系统应该先从目录中找到要删除的文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。
(3)读文件
在读一个文件时,须在相应的系统调用中给出文件名和应该读入的内存目标地址。此时,系统同样要查找目录,找到制定的目录项,从中得到被读文件在外存中的位置。在目录项中,还有一个指针用于对文件的读/写。
(4)写文件
在写一个文件时,须在相应的系统调用中给出该文件名及该文件在内存中的(源)地址。为此,也同样须先查找目录,找到指定文件的目录项,在利用目录中的写指针进行写操作。
(5)截断文件
如果一个文件的内容已经陈旧而需要全部更新文件的内容时,一种方法是将此文件删除,再重新创建一个新文件。但如果文件名及其属性均无改变时,则可采取另一种所谓的截断文件的方法,此即将原有文件的长度设置为0,或说放弃原有的文件内容。
(6)设置文件的读/写位置
前述的文件读/写操作,都只提供了对文件顺序存取的手段,即每次都是从文件的始端读或写。设置文件读/写位置的操作,用于设置文件读/写指针的位置,以便每次读/写文件时,不是从其始端而是从所设置的位置开始操作。也正因如此,才能改顺序存取为随机存取。
3.设计实现:
1)流程图
2)详细设计
源代码
#include stdio.h
#include string.h
#include conio.h
#include stdlib.h
#include time.h
#define MaxUser 100 //定义最多有100个用户
#define MaxDisk 512*1024 //定义磁盘空间大小
#define commandAmount //对文件操作的指令数
//存储空间管理有关结构体和变量
char disk[MaxDisk];// 模拟512K的磁盘存储空间
typedef struct distTable //磁盘块结构体
{
int maxlength;
int start;
int useFlag;
distTable *next;
}diskNode;
diskNode *diskHead;
typedef struct fileTable //文件快结构体
{
char fileName[10];
int start; //文件在磁盘存储空间的起始地址
int length; //文件内容长度
int maxlength;//文件的最大长度
char fileKind[3];//文件的属性--读写方式
struct tm *timeinfo;
bool openFlag;//判断是否有进程打开了文件
};
int used = 0;// 定义 MFD 目录中用已有的用户数
//两级目录结构体
typedef struct user_file_directory //用户文件目录文件 UFD
{
fileTable *file;
user_file_directory *next;
}UFD;
typedef struct master_file_directory //主目录文件
{
char userName[10];
char password[10];
UFD *user;
}MFD;
MFD userTable[MaxUser];
int userID = -1; //用户登录的 ID 号,值为-1 时表示没有用户登录
//文件管理
void fileCreate(); //创建文件
void fileDelet(); //删除文件
void fileWrite(); //写文件
void fileRead();//读文件
void fileRename(); //重命名文件
void fileFind(); //查询文件
void fileDir();// 显示某一用户所有文件
void fileClose
您可能关注的文档
- 相对论习题(附答案).docx
- 操作系统实验2.docx
- 电大西方行政学网上形考3答案.docx
- 第九节牙龈癌.ppt
- 真菌性鼻及鼻窦炎——耳鼻咽喉-头颈外科学.pptx
- 德能勤绩量化考核表----2015年度.doc
- 电大资源网《管理英语1》形成性考核册作业题目和答案2018年.pdf
- 操作系统课程设计.docx
- 神经外科危重病抢救流程(全).doc
- 旅游管理职业生涯规划..pdf
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)