文件管理系统 一、实验目的 通过设计一个多用户文件系统,了解操作系统中文件的组织与管理,熟悉文件管理所用的数据结构,加深对文件系统内部功能实现过程的理解。 二、实验内容 1.用C 语言或 C++语言设计一个最多包括 N 个用户的多用户文件系统,约定每个用户最多保存 M 个文件。同时限制一个用户在进入系统后,最多打开 L 个文件。 2.系统应具备一定的健壮性。即能够检查用户所输入命令的正确性,出错时显示出必要的信息。另外,对文件需设置必要的保护措施。 3.文件目录结构采用两级目录结构:主文件目录和用户文件目录 #include"io.h" #include"conio.h" #include"stdio.h" #include"stdlib.h" #include"malloc.h" #include"string.h" #include"ctype.h" #define N 30 /*用户数*/ #define M 20 /*一个用户可保存 M 个文件*/ #define L 5 /*用户只能一次打开 L 个文件*/ typedef struct MFD /*主文件目录*/ { char username[100]; char password[100]; FILE fp; /*文件指针*/ }MFD; /////////// typedef struct UFD /*用户文件目录*/ { char filename[256]; char protect; /*保护码*/ int length; /*文件长度*/ }UFD; ////////// typedef struct OFD /*打开文件目录*/ { char filename[256]; char opencode; /*打开保护码*/ int fp; /*读写指针*/ }OFD; ////////// typedef struct COMM /*命令串*/ { char string[256]; /*命令*/ struct COMM *next;/*后继指针*/ }COMM; //////////// MFD mainfd[N]; /*主文件目录数组*/ UFD userfd[M]; /*用户文件目录数组*/ OFD openfd[L]; /*打开文件目录数组*/ //////// COMM*command; /*命令串指针*/ char username[10]; int usernum,savenum,opennum; int workfile; void init(); void init_ufd(char *username);/*初始化用户文件目录*/ void mesg(char *str); /*消息*/ char *getpass(); /*设置口令函数声明*/ char *getuser(); /*设置用户函数声明*/ COMM *readcommand(); /*读命令串函数声明*/ void login(); /*用户登录*/ void logout(); /*用户注销*/ void setpass(); /*设置口令*/ void create(); /*创建文件*/ void mydelete(); /*删除文件*/ void myread(); /*读文件*/ void myopen(); /*打开文件*/ void myclose(); /*关闭文件...