实验二文件系统模拟设计一、实验目的通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。二、实验内容为linux 系统设计一个简单的二级文件系统。要求做到以下几点:(1)可以实现下列几条命令(至少4 条); login 用户登录 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件(2)列目录时要列出文件名、物理地址、保护码和文件长度;(3)源文件可以进行读写保三、实验内容指导提示(1)首先应确定文件系统的数据结构:主目录、 子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。(2)用户创建的文件,可以编号存储于磁盘上。如file0, file1,file2...并以编号作为物理地址,在目录中进行登记。★★★★★《程序设计思想参考》<程序设计 > (1) 设计思想本系统是模拟实现多用户多目录的文件系统(8 个用户) , 在系统出现登录后 , 输入用户与口令, 在用户登录系统后 , 可建立文件卷 , 将用户输入的文件保存在指定的文件中。系统的命令与其命令的具体实现,此模拟系统共提供了上述命令, 并根据命令的含义与要求, 用 C++编程来完成所有具体操作。该系统可以模拟完成用户的登陆和验证 , 列出文件和目录, 新建目录 , 改变目录 , 创立和编写文件, 删除文件和退出系统等功能。【注:在linux下用 g++编译 C++】 (2) 主要数据结构用户结构:账号与密码结构typedef struct users { char name[8]; char pwd[10]; }users; 本系统有 8 个默认的用户名, 前面是用户名 , 后面为密码 , 用户登陆时只要输入正确便可进入系统, 否则提示失败要求重新输入。users usrarray[8] = { "usr1","usr1", "usr2","usr2", "usr3","usr3", "usr4","usr4", "usr5","usr5", "usr6","usr6", "usr7","usr7", "usr8","usr8", }; (3) 数据结构说明a) 文件结构链表struct fnode { char filename[FILENAME_LENGTH]; int isdir; int isopen; char content[255]; fnode *parent; fnode *child; fnode *prev; fnode *next; }; b) 函数介绍fnode *initfile(char filename[],int isdir);//初始化文件或目录void createroot();//建立系统根目录int run();系统运行int findpara(char *topara);对参数进行处理bool chklogin(char *users, char *pwd);检查账号...