南邮操作系统实验之文件系统实验 |
您所在的位置:网站首页 › 文件管理系统为用户提供的功能 › 南邮操作系统实验之文件系统实验 |
1、实验概述
实现多用户文件系统,每次用户可保存多个文件,一次运行用户可打开5个文件。实现文件的相关操作,包括创建、删除、打开、关闭以及读写功能。采用二级目录,设置主目录MFD、用户文件目录UFD。设置文件权限保护码:1-可执行,2-只读,3-只写。实现用户登录、退出、退出系统等操作。为简化程序,不对用户信息进行保存,即每次运行,文件系统都相当于初始化一次。
2、结构体设计
(1)用户users typedef struct users { char name[8]; //用户名 char pwd[10]; //密码 }users; (2)主文件目录MFD struct MFD{ // 主文件目录 string u_name; // 用户名 int addr; // 指向子目录指针 }mfd[10]; (3)用户文件目录UFD struct UFD{ // 用户文件目录 File file[1000]; string u_name; // 用户名 int id; // 文件的总数 int cnt; // 用户文件存在的个数 int open_cnt; // 用户打开文件个数,最大为k void init() ; //初始化数据项 void create() ; //创建用户文件 void del(int pos); //删除用户文件 void open(int pos); //打开文件 void close(int pos); //关闭文件 void read(int pos); //读文件 void write(int pos); //写文件 int Find(string name);//根据文件名查找文件 }ufd[10]; (4)文件File struct File{ string name; // 文件名 bool exist; // 0表示文件已经删除,1表示文件存在 bool state; // 0表示文件处于关闭状态,1表示打开状态 int protect; // 1表示只执行,2表示只读,3表示只写,4表示可读可写 string content; // 文件内容 void create(); //创建 void del(); //删除 bool open(); //打开 bool close(); //关闭 void read(); //读 void write(); //写 }; 3、文件系统的流程图4、代码实现 (1)User.h 头文件里新加用户信息,用于登录,这种实现方法简单,用户信息固定。 当然,也可以尝试建立一个文件存储用户信息,登陆时将输入的账号密码与文件已有数据比较,只是考虑到这次实验的重点在于体验多用户系统,故而一切从简。 typedef struct users { char name[8]; char pwd[10]; }users; users usrarray[8] = { "usr1","usr1", "usr2","usr2", "usr3","usr3", "usr4","usr4", "usr5","usr5", "usr6","usr6", "usr7","usr7", "usr8","usr8", };(2)UFD.h等只是上述的结构体,无追加内容 (3)File.h struct File{ string name; // 文件名 bool exist; // 0表示文件已经删除,1表示文件存在 bool state; // 0表示文件处于关闭状态,1表示打开状态 int protect; // 1表示只执行,2表示只读,3表示只写,4表示可读可写 string content; // 文件内容 void create(); void del(); bool open(); bool close(); void read(); void write(); }; void File::create(){ cout > name >> protect; cout > content; exist = 1; state = 0; } void File::del(){ exist = 0; } bool File::open(){ if(protect == 1) { cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |