实验六:文件系统一、目的要求1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程.从而对各种文件操作命令的实质内容和执行过程有比较深化的了解。2、要求设计一个 n 个用户的文件系统,每次用户可保存 m 个文件,用户在一次运 行 中 只 能 打 开 一 个 文 件 , 对 文 件 必 须 设 置 保 护 措 施 , 且 至 少 有Create、delete、open、close、read、write 等命令.二、例题: ①设计一个 10 个用户的文件系统,每次用户可保存 10 个文件,一次运行用户可以打开 5 个文件。② 程 序 采 纳 二 级 文 件 目 录 ( 即 设 置 主 目 录 [MFD] ) 和 用 户 文 件 目 录(UED)。另外,为打开文件设置了运行文件目录(AFD)。③ 为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作.④ 算法与框图: a、因系统小,文件目录的检索使用了简单的线性搜索。 b、文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行. c、程序中使用的主要设计结构如下:Ⅰ、主文件目录和用户文件目录( MFD、UFD)Ⅱ、打开文件目录( AFD)(即运行文件目录) 三、调度算法的流程图四、文件管理源程序#include#include〈malloc。h>M D F用户名 文件目录指针 用户名 文件目录指针 U F D文件名 保护码 文件长度 文件名 A F D打开文件名 打开保护码 读写指针 #include〈stdlib。h>typedefstructufd{ char filename[10];/*文件名*/ char procode[8];/*属性*/int length;/*文件长度*/structufd *nextfile;/*指向下一个文件*/}UFD;typedefstructmfd{ char username[10];/*用户名*/structufd *link;/*指向该用户的第一个文件*/}MFD;typedefstructprotected_flag{ char code[4];}PRO;typedefstructafd/*运行文件目录*/{ char filename[10];/*打开文件名*/charprocode[4];intrwpointer;/*读写指针*/}AFD;PRO flag[3]={"100”,/*只读*/”110”,/*读写*/"001”/*可执行*/};UFD *rw_pointer;/*读写指针*/AFD *afd=NULL;MFD filesystem[10];intnum;/*当前用户个数*/voiddisplayallfile(){ inti; UFD *p;for(i=0;i