cl操作系统实验.doc
《cl操作系统实验.doc》由会员分享,可在线阅读,更多相关《cl操作系统实验.doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、南京理工大学泰州科技学院实验报告书课程名称: 计算机操作系统 实验题目: 实验四 文件系统 班 级: 09计算机(2)班 学 号: 姓 名: 徐刚 指导教师: 袁宝华 成 绩: 批阅教师: 年 月 日一、实验目的1. 理解文件系统的主要概念;2. 理解文件系统内部功能和实现过程二、实验内容1要求 文件系统是操作系统中负责管理和存取文件信息的机构,它具有“按名存取”的功能,不仅方便用户,而且能提高系统效率且安全可靠。文件系统主要实现对具体的文件存储空间的管理、文件的物理结构、目录结构管理和文件操作,采用二级文件目录结构,第一级为主文件目录MFD,第二级为用户文目录件UFD,如表7-1、7-2所示
2、。设计一个有m个用户的文件系统,每个用户最多可保存一个文件;规定用户在一次运行中只能打开K个文件;系统能检查键入命令的正确性,出错时应能显示出错原因;对文件应能设置保护措施,如只能执行,允许读,允许写等;对文件的操作设计提供一套文件操作: CREATE建立文件 DELETE删除文件 OPEN打开文件 CLOSE关闭文件 READ读写文件 WRITE写文件2二级目录结构表7-1 主文件目录MFD用户名用户文件目录地址 表7-2 用户文件目录UFD文件名状态(打开/建立)指针 三、实验步骤/ disk.h: interface for the Cdisk class./*/#if !defined
3、(AFX_DISK_H_1FAB24AE_C718_49FF_A915_B8BC_INCLUDED_)#define AFX_DISK_H_1FAB24AE_C718_49FF_A915_B8BC_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000extern int disk_block10000;extern int disk_empty;typedef struct UFD/存储文件信息 char name10; int attribute;/文件属性 int length; int a10; int *p1;/一级索
4、引 int (*p2)100;/二级索引 struct UFD *next;/ 指向文件链表中此文件结点的下一个结点UFD;typedef struct DIR/存储目录信息 DIR *above;/ 指向目录链表中此目录结点的上一个结点 char name10; int length; DIR *next;/指向目录链表中引目录结点的下一个结点 UFD *File_head;/此目录下文件链表的头指针 DIR *Dir_head;/此目录下目录链表的头指针DIR;class Cuse/定义管理用户目录的类 DIR *now;/当前目录 UFD *Fhead;/文件链表的头结点 DIR *Dh
5、ead;/目录链表的头结点 char code10;/用户密码 char name10;/用户名称 int length;/用户所使用空间大小 int status;/此对象是否已经分配给用户public: void set_status(int); int dele_user(); int dis_file();/显示文件所占外存块号 int dis_dir(DIR *d);/实现显示当前路径的函数 int get_length(); char const*get_name(); char const*get_code(); int get_status(); int set_user(ch
6、ar *,char *);/设置用户名与密码 DIR *get_now(); int dele_file(UFD *f);/删除文件的具体实现部分 int dele_dir(DIR*);/删除目录的具体实现部分 Cuse(); Cuse(); int goback();/返回上一级目录 int dis_now();/显示当前目录的信息 int new_file(); int new_dir(); int open_dir(); int open_file(); int first_dele_file();/实现删除文件的前部分工作 int first_dele_dir();/实现删除目录的前部
7、分工作 int set_code();class Cdisk public: Cuse user5; char code10; int dis_disk(); int first_dele_user(); int dele_user(int); int new_user();/查看当前用户信息与外存空间使用情况 int set_code(); int login();/用户登录 Cdisk(); virtual Cdisk();#endif / !defined(AFX_DISK_H_1FAB24AE_C718_49FF_A915_B8BC_INCLUDED_)#include disk.h#
8、include#include#includeint disk_block10000;int disk_empty;Cdisk:Cdisk() int i=0; char code10=; for(i=0;iuser0.set_user(student,123); disk_empty=10000; cout.setf(ios:left);Cdisk:Cdisk()int Cdisk:dele_user(int i) Cuse C; C=useri; useri.dele_user(); return 1; int Cdisk:dis_disk() int i=0; coutsetw(14)用
9、户名setw(14)占用空间大小endl; for(i=0;i5;i+) if(useri.get_status()=1) coutsetw(14)useri.get_name()setw(14)useri.get_length()endl; cout已用空间:10000-disk_emptyendl剩余空间 :disk_emptyendl; return 1;int Cdisk:login() char n10,c10; int i; cout请输入用户名与密码,中间用空格隔开nc; for(i=0;i5;i+) if(useri.get_status() if(!strcmp(n,user
10、i.get_name() if(!strcmp(c,useri.get_code() cout登录成功endl; cout欢迎useri.get_name()登录endl; return i; else cout密码错误endl; return -1; cout没有这个用户endl; return -1;int Cdisk:set_code() char temp110,temp210; cout请输入原密码temp1; if(strcmp(temp1,code) cout原密码错误endl; return 0; while(1) cout请输入请新密码temp1; cout请再输入新密码te
11、mp2; if(strcmp(temp1,temp2) cout两次输入不一致endl; break; cout密码设置成功endl; strcpy(code,temp1); return 1;int Cdisk:new_user() char n10,c10; int i=0; for(i=0;i5;i+) if(useri.get_status()=0) break; if(i=5) cout已经达到最大用户个数,不能创建endl; return 0; useri.set_status(1); cout请输入用户名称n; cout请输入密码c; useri.set_user(n,c); c
12、out用户创建成功endl; return 1;int Cdisk:first_dele_user()char n10,c;int i;cout请输入你要删除的用户的名称n;for(i=0;i5;i+)if(!strcmp(useri.get_name(),n)&useri.get_status()break;if(i=5)cout此用户不存在endl;return 0; cout确认删除此用户?确认请按Y,取消请按其他键c; if(c!=Y) cout已经取消删除dele_user(i); cout用户删除成功next=0) this-dele_file(f); f=0; break; wh
13、ile(f-next-next!=0) f=f-next; this-dele_file(f-next); f-next=0; f=Fhead; while(d!=0) if(d-next=0) this-dele_dir(d); d=0; break; while(d-next-next!=0) d=d-next; this-dele_dir(d-next); d-next=0; d=Dhead; int Cuse:new_file()int i=0,j=0;UFD *p=0;p=new UFD;/开辟一个新的文件结构体if(p=0)/如果p已经指向空了,说明没有空间了cout无可用内存空间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cl 操作系统 实验
限制150内