文件管理课程设计报告.doc

上传人:marr****208 文档编号:141320646 上传时间:2020-08-06 格式:DOC 页数:27 大小:362.50KB
返回 下载 相关 举报
文件管理课程设计报告.doc_第1页
第1页 / 共27页
文件管理课程设计报告.doc_第2页
第2页 / 共27页
文件管理课程设计报告.doc_第3页
第3页 / 共27页
文件管理课程设计报告.doc_第4页
第4页 / 共27页
文件管理课程设计报告.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《文件管理课程设计报告.doc》由会员分享,可在线阅读,更多相关《文件管理课程设计报告.doc(27页珍藏版)》请在金锄头文库上搜索。

1、操作系统课程设计报告姓 名: xxx _学号: xxxxxxxxxxxx _专 业 年 级: 软件2班 指 导 教 师: _xx_ 2016年 3月1日 1 概述 目的:本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 意义: 本系统是基于linux平台运行在终端上的虚拟二级文件管理系统。模拟真正的文件管理系统,并采用用户登录机制对文件和文件夹进行创建,修改,删除的操作。对于文件夹而言,可以进行创建删除的操作;对于文件而言,可以创建,修改,删除。删除文件夹时,同时删除相应文件夹下的文件。采用用户登录使得用户管理文件更方便,并形成了二级的文件管理模式。 主要

2、任务:为DOS系统设计一个简单的二级文件系统.要求做到以下几点:可以实现下列命令:login用户登录dir列文件目录create创建文件delete删除文件open打开文件close关闭文件read读文件write写文件列目录时要列出文件名、物理地址、保护码和文件长度.源文件可以进行读写保护2 系统设计 (1)设计思路程序中要求每个用户在登陆后才可对其拥有的文件进行操作,用户对于其他用户的文件无操作权.文件操作包括浏览、创建、删除、打开、关闭、阅读、写入、修改模式.其他操作包括新建用户、帮助、用户登入、用户登出、退出系统.在程序文件夹下有个名为“file”的系统根目录,此目录下包括:一个名为“

3、mfd”的文件,记录所有注册过的帐号及密码;用户文件,以用户名作为文件名,内容为其拥有的文件名及属性;一个名为“keiji”的文件夹.“keiji”文件夹中包括:“file.p”指针文件,记录所有已用的物理地址;一些以物理地址为名的文件,内容为文件内容.(2)数据结构file结构体系统文件.数据结构:fpaddrint,文件的物理地址、flengthint,文件长度、fmodeint,文件模式0.只读;1.可写;2.可读写;3.保护、fnamechar,文件名;filemode结构体文件状态数据结构:isopenint,文件当前状态,0.关闭;1.打开、modeint,文件模式0.只读;1.可

4、写;2.可读写。(3)初始化user结构体用户信息数据结构:unamechar,用户名、upasswordchar,用户密码;userfile结构体用户文件数据结构:unamechar,用户名、ufilefile,用户拥有的文件数组3 系统实现#include#include#include#include#include#defineMaxUser100 /定义最大mdf目录文件#defineMaxDisk 512*1024 / 模拟最大磁盘空间 512k#definecommandAmount12 / 对文件操作指令数chardiskMaxDisk; / 模拟512k磁盘空间typedef

5、structdistTable/磁盘块结构体intmaxlength;intstart;intuseFlag;distTable*next;diskNode;diskNode*diskHead;structfileTable/文件块结构体charfileName10;intstrat;/文件在磁盘存储空间的起始地址intlength;/文件内容长度intmaxlength;/文件的最大长度charfileKind3;/文件的属性读写方式structtm*timeinfo;boolopenFlag;/判断是否有进程打开了文件/fileTable*next;/两级目录结构体typedefstruc

6、tuser_file_directory/用户文件目录文件UFD/charfileName10;fileTable*file;user_file_directory*next;UFD;/UFD*headFile;typedefstructmaster_file_directory /主文件目录MFDcharuserName10;charpassword10;UFD*user;MFD;MFDuserTableMaxUser;intused=0; /定义MFD目录中用已有的用户数/文件管理voidfileCreate(charfileName,intlength,charfileKind); /创

7、建文件voidfileWrite(charfileName);/ 写文件voidfileCat(charfileName);/读文件voidfileRen(charfileName,charrename);/ 重命名文件voidfileFine(charfileName);/查询文件voidfileDir(charUserName);/ 显示某一用户的所有文件voidfileClose(charfileName);/ 关闭以打开的文件voidfileDel(charfileName);/删除文件voidchmod(charfileName,charkind); /修改文件的读写方式intreq

8、uestDist(int&startPostion,intmaxLength); /磁盘分配查询voidinitDisk();/ 初始化磁盘voidfreeDisk(intstartPostion);/磁盘空间释放voiddiskShow();/显示磁盘使用情况/用户管理voiduserCreate();intlogin();intuserID=-1;/用户登录的ID号,值为-1时表示没有用户登录intmain()charordercommandAmount10;strcpy(order0,create);strcpy(order1,rm);strcpy(order2,cat);strcpy(

9、order3,write);strcpy(order4,fine);strcpy(order5,chmod);strcpy(order6,ren);strcpy(order7,dir);strcpy(order8,close);strcpy(order9,return);strcpy(order10,exit);strcpy(order11,df);charcommand50,command_str110,command_str210,command_str35,command_str43;inti,k,j;intlength;initDisk();/初始化磁盘for(i=0;inext=NU

10、LL;while(1)printf(*n);printf(1、Creatusern);printf(2、loginn);printf(*n);printf(Pleasechoocethefunctionkey:);intchoice;scanf(%d,&choice);if(choice=1)userCreate();elseif(choice=2)userID=login();elseprintf(您的输入错误!请重新选择n);while(userID!=-1)fflush(stdin);printf(*n);printf(create-创建格式:createa11000rw,将创建名为a1

11、,长度为1000字节可读可写的文件n);printf(rm-删除格式:rma1,将删除名为a1的文件n);printf(cat-查看文件内容格式:cata1,显示a1的内容n);printf(write-写入格式:writea1n);printf(fine-查询格式:finea1,将显示文件a1的属性n);printf(chmod-修改格式:chmoda1r,将文件al的权限改为只读方式n); printf(ren-重命名格式:rena1b1,将a1改名为b1n);printf(dir-显示文件格式:diraaa,将显示aaa用户的所有文件n);printf(df-显示磁盘空间使用情况格式:dfn);printf(close-关闭文件格式:closea1,将关闭文件a1n);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号