




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
操作系统二级文件管理课程设计 课程设计名称:二级文件管理系统 专业班级:软件工程计083-1 学生姓名:李晓斌 学号:20082553103 指导教师:任满杰 设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 设计内容:为Linux系统设计一个简单二级文件管理系统 一、实验内容描述 1实验目标 本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现. 2实验要求 为linux系统设计一个简单的二级文件系统.要求做到以下几点: ①可以实现下列命令: login用户登录 dir列文件目录 create创建文件 delete删除文件 open打开文件 close关闭文件 read读文件 write写文件 ②列目录时要列出文件名、物理地址、保护码和文件长度. ③源文件可以进行读写保护. 程序设计 (1)设计思想 本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户账号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管理文件与设备文件等特殊内容。 (2)主要数据结构 A磁盘块结构体: typedefstructdistTable { intmaxlength; intstart; intuseFlag; distTable*next; }diskNode; diskNode*diskHead; B文件块结构体: structfileTable//文件块结构体 { charfileName[10]; intstrat;//文件在磁盘存储空间的起始地址 intlength;//文件内容长度 intmaxlength;//文件的最大长度 charfileKind[3];//文件的属性——读写方式 structtm*timeinfo; boolopenFlag;//判断是否有进程打开了该文件 //fileTable*next; }; C两级目录结构体 typedefstructuser_file_directory//用户文件目录文件UFD { //charfileName[10]; fileTable*file; user_file_directory*next; }UFD; //UFD*headFile; typedefstructmaster_file_directory//主文件目录MFD { charuserName[10]; charpassword[10]; UFD*user; }MFD; (3)函数如下; voiduserCreate() { charc; charuserName[10]; inti; if(used<MaxUser) { printf("请输入用户名:"); for(i=0;c=getch();i++) { if(c==13)break; else userName[i]=c; printf("%c",c); } userName[i]='\0'; for(i=0;i<used;i++) { if(!strcmp(userTable[i].userName,userName)) { printf("\n"); printf("该用户名已存在,创建用户失败\n"); system("pause"); return; } } strcpy(userTable[used].userName,userName); printf("\n"); printf("请输入密码:"); for(i=0;c=getch();i++) { if(c==13)break; else userTable[used].password[i]=c; printf("*"); } userTable[userID].password[i]='\0'; printf("\n"); printf("创建用户成功\n"); used++; system("pause"); } else { printf("创建用户失败,用户已达到上限\n"); system("pause"); } fflush(stdin);//清除文件缓冲区 } intlogin() { charname[10],psw[10]; charc; inti,times; printf("请输入用户名:"); for(i=0;c=getch();i++) { if(c==13)break; else name[i]=c; printf("%c",c); } name[i]='\0'; for(i=0;i<used;i++) { if(!strcmp(userTable[i].userName,name)) brea

王子****青蛙
实名认证
内容提供者


最近下载