下载后可任意编辑操作系统文件管理系统模拟实验12024 年 4 月 19 日 文件管理系统模拟1.实验目的经过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现2.实验内容为 Linux 系统设计一个简单的二级文件系统。要求做到以下几点:(1)能够实现下列几条命令(至少 4 条)login用户登录dir列文件目录create创立文件delete删除文件open打开文件close关闭文件read读文件write写文件下载后可任意编辑(2)列目录时要列出文件名、物理地址、保护码和文件长度;(3)源文件能够进行读写保护。3.实验提示(1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。( 2 ) 用 户 创 立 的 文 件 , 能 够 编 号 存 储 于 磁 盘 上 。 入file0,file1,file2…并以编号作为物理地址,在目录中进行登记。4.源代码#include #include #include #define MEM_D_SIZE 1024*1024 //总磁盘空间为1M#define DISKSIZE 1024//磁盘块的大小 1K#define DISK_NUM 1024//磁盘块数目 1K12024 年 4 月 19 日下载后可任意编辑#define FATSIZE DISK_NUM*sizeof(struct fatitem)//FAT 表大小#define ROOT_DISK_NO FATSIZE/DISKSIZE+1//根目录起始盘块号#define ROOT_DISK_SIZE sizeof(struct direct)//根目录大小#define DIR_MAXSIZE 1024//路径最大长度为1KB#define MSD 5//最大子目录数 5#define MOFN 5//最大文件深度为 5#define MAX_WRITE 1024*128//最大写入文字长度 128KB struct fatitem /* size 8*/ { int item; /*存放文件下一个磁盘的指针*/ char em_disk; /* 磁 盘 块22024 年 4 月 19 日下载后可任意编辑是否空闲标志位 0 空闲*/ }; struct direct { /*----- 文 件 控 制 快 信息-----*/ struct FCB { char name[9]; /*文件/目录名 8 位*/ char property; /*属性 1 位目录 0 位普通文件*/ int size; /*文件/目录字节数、盘块数)*/ int firstdisk; /*文件/目录 起始盘块号*/ int next; /*子目录起始盘块号*/ int sign; /*1 是根目录 0 不是根目录*/ }directitem[MSD+2]; }; struct opentable { struct openttableitem { char name[9]; /*文32024 年 4 月 19 日下载后可任意编辑件名*/ in...