操作系统二级文件管理课程设计 课程设计名称: 二级文件管理系统 专 业 班 级 : 软件工程计083-1 学 生 姓 名 : 李晓斌 学 号 : 20082553103 指 导 教 师 : 任满杰 设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 设计内容:为Linux系统设计一个简单二级文件管理系统 一、实验内容描述 1 实验目标 本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现. 2 实验要求 为linux系统设计一个简单的二级文件系统.要求做到以下几点: ①可以实现下列命令: login 用户登录 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 ②列目录时要列出文件名、物理地址、保护码和文件长度. ③源文件可以进行读写保护. 程序设计 (1) 设计思想 本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户账号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管理文件与设备文件等特殊内容。 (2) 主要数据结构 A 磁盘块结构体: typedef struct distTable { int maxlength; int start; int useFlag; distTable *next; }diskNode; diskNode *diskHead; B 文件块结构体: struct fileTable //文件块结构体 { char fileName[10]; int strat; //文件在磁盘存储空间的起始地址 int length; //文件内容长度 int maxlength; //文件的最大长度 char fileKind[3]; //文件的属性——读写方式 struct tm *timeinfo; bool openFlag; //判断是否有进程打开了该文件 //fileTable *next; }; C 两级目录结构体 typedef struct user_file_directory //用户文件目录文件UFD { //char fileName[10]; fileTable *file; user_file_directory *next; }UFD; //UFD *headFile; typedef struct master_file_directory //主文件目录 MFD { char userName[10]; char password[10]; UFD *user; }MFD; (3)函数如下; void userCreate() { char c; char userName[10]; int i; if(used