操作系统课程设计Linux二级文件系统设计

上传人:仙*** 文档编号:214579686 上传时间:2023-05-30 格式:DOC 页数:18 大小:86.50KB
收藏 版权申诉 举报 下载
操作系统课程设计Linux二级文件系统设计_第1页
第1页 / 共18页
操作系统课程设计Linux二级文件系统设计_第2页
第2页 / 共18页
操作系统课程设计Linux二级文件系统设计_第3页
第3页 / 共18页
资源描述:

《操作系统课程设计Linux二级文件系统设计》由会员分享,可在线阅读,更多相关《操作系统课程设计Linux二级文件系统设计(18页珍藏版)》请在装配图网上搜索。

1、操作系统课程设计报告专 业:软件工程学 号:姓 名:马提交日期:2017/1/1【设计目得】1、 通过一个简单多用户文件系统得设计,加深理解文件系统得内部功能与内部实现2、 结合数据结构、程序设计、计算机原理等课程得知识,设计一个二级文件系统,进一步理解操作系统3、通过对实际问题得分析、设计、编程实现,提高学生实际应用、编程得能力 【设计内容】为inu系统设计一个简单得二级文件系统。要求做到以下几点:、可以实现下列几条命令:on 用户登录d 列目录crete 创建文件lete 删除文件e 打开文件loe 关闭文件read 读文件rit 写文件d 进出目录2。列目录时要列出文件名,物理地址,保护

2、码与文件长度3。源文件可以进行读写保护【实验环境】C+DevCp【设计思路】本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下得文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容.首先应确定文件系统得数据结构:主目录、子目录及活动文件等。主目录与子目录都以文件得形式存放于磁盘,这样便于查找与修改。用户创建得文件,可以编号存储于磁盘上。如:并以编号作为物理地址,在目录中进行登记。结构体:typedefstruct /thestuctrof SFILE nt fpdd; /* adres/ in flent; /*/ nt fmode;

3、ly;1ritOl;2Rad ad rte; 3-Poet;/ carfmeMANAME; /*/ OSFIL; /存放重要信息tyeef struct/*hestuct ofOU/ har ufdnameMAXAE; ufdnme/ OSAXCILD; /uf on leSUD; /用户下面得文件 pedf strut *he structure of UFDLOGI chr ufdnaMAE; / ame/ charufpwrd8; /uf pasord*/ UF_LOG;typede strct * ode* int iopen; /ifope:0close,1pen*/ int pen

4、md; /0-read only,1-wri ny,2read an rie,3-ntia/OSUD_OPNO;主要得函数说明:voiLoiF(); /*LGIN 用户登录*o Dir(); /*ir列目录/vod CdF(); Chag Di改变目录*/voiCreateF(); Create il创建文件void DeleF();*Det il删除文件*/voidMifyM();/Mdy 修改/voi en(); /*Openle打开文件/vod loseF(); /ClseFe关闭文件*/void RedF(); Read Fie读文件/vod WriteF(); /*WriteFle写

5、文件*/voi Quit();/Qui 离开文件系统*/void hel();其她重要函数:voidclsr() /清屏nt EsD(hr *dire) /Wethe Drae Exst,Exist-,NotExit0*/ intEistF(char ) /*Whether Et,Eist-,N Exist0*/int FindAo() *find t sicl dress*/vodSetPANo(ntRorW) /*t ical ddes ,-ead,wrie/oidnutPW(ha passwor) *iu psord,use * relac/ chalti(char *str) /rem

6、ovethe heaing lank、去除左空白char rtr(car *str) remo t rligblaks、去除右空白ntWitF1() /write fl相当于置换文件/程序流程说明:整体流程:开始Login(Name/Pw/Cpw)创建文件打开文件删除文件写文件更改目录修改文件属性读文件关闭文件退出系统清屏添加覆盖结束各部分功能流程:Open:开始 Open获取文件名文件就是否存在?(file0)文件名不存在获取文件置为打开状态并获取文件模式打开文件成功结束 N N Yel:开始Delete主目录就是否为空?Y确认删除文件在用户目录下!用户就是否在用户目录下? 只能修改用户目录

7、下得文件!Y接收删除文件名获取文件文件被打开或被保护?Y打开或被保护状态不可删除获取物理块号文件向前移动删除文件,文件数减一删除文件成功!结束Write:开始Write用户就是否在目录下?N文件不存在! 获取文件 确认该文件被打开文件权限为只写或读写 N文件为只读与保护,不允许写! Y获取路径0追加,1覆盖?1覆盖0追加文件写入成功!结束Clos:开始CloseN用户就是否在目录下?请确认要关闭得文件就是在用户目录下! Y罗列已经打开得文件获取文件名获取物理地址文件就是否处于关闭状态?Y该文件已被关闭 N关闭文件文件成功关闭结束【源程序清单】Open:vidpnF() Open Fl*/ pr

8、if(nnC:%s,strpr(ie)); /显示当前路径 in fcu, ; 定义两个整形变量 harfaeAXAE, fe25; 定义两个字符串变量 nt fod; /文件模式 prinf(”nPleasnpt :”); ets(fam); /接收打开文件得文件名 lri(rtri(fname); /去除左右空白 if(itF(fme)uffilei、fmod=3) /保护文件,不可删除 inf(nErr、s处于被保护状态!请先关闭哟!n, fnme); wethar=1; ee fdrno1=ufdk-ufdfili、fpdd; 获取文件得物理地址块号 paddrfpadrno=0; /

9、回收物理地址块号 for(j=i;jfcoun; +) /将文件都向前移动 ufdk-uffiej=ufd-fd;/将j位置为 scpy( , :osfilfe); itoa(fpddrn1, sr, 10); /将整数转化为字符串 strct(tr,str1); strcat(str, ”、txt);/连接 rov(str); /删除物理文件 fcntk-; /文件个数减一 printf(n%is delete sucessfly、n”, fname); getchr=1; lse pritf(”nEror、s文件不存在!n, fn); /文件不存在 gechr=1; Writ:voi Wr

10、ieF() /Writ F*/ printf(nnC:%s,str(rnm)); /显示用户路径 int i, k, 0; /定义整形变量 nt lenh; /定义长度整形变量 char fnamMAXAM; /定义文件名字符串 chrsr255, st1255; 定义两个字符串变量 if(st(sp(dnme), trupr(username))!=) /判断用户就是否在用户目录下 prinf(Error!请确认您要写得在用户目录下!n); wgethar=1; rtun; pintf(n请先打开文件!n); ritf(pened ie(s) Lst:n); kxisD(din); 获取用户

11、文件信息 for(i0; ifcontk; i+) /遍历用户下得文件 f(ifoenk、ifpn=1) /文件处于打开状态 rinf(%1s,ufduffilei、fnae); +; if(m4 = 0 &!=) /每创建4个文件换一行 rntf(n); printf(n%文件已经打开啦!n,m); f(m= 0) ghar=1; if(!=0) /创建文件 printf(nleaeipt:); gts(nam); /接收文件名 rim(rtrm(fnae)); /去除左右空白 iExistF(fne); /获取文件物理地址 f(i0) /文件存在 i(ioen、ifopn=1) /文件处于

12、打开状态 if(iopenk、opmo=1 ifopenk、opnmd2) /文件权限就是只写或读写 itoa(ufdkufdfl、fr, sr, 0); /获取文件路径 strpy(str1, ile); scat(str, st); trcpy(str, c:osiefle”); strcat(str, st1); stat(sr, ”、x); /文件路径hr str23;int hoice=;strcpy(sr,”ab);print(You anchos 0ovrd W 1-Addion:”); /选择追加还就是覆盖sanf(”%”, choic);f(choce = 0) /-覆盖st

13、py(st2, wb”); fp_(t, str); /打开文件 lgh=Wrte1(); ukufdilei、fegthfdkufdfili、flenth+ngt; /修改文件长度if(choice0)udkffile、lngth=legth; prnf(nnou av wit !);fclos(pile); /关闭文件 wgetchar=0; els if(ope、pemoe0) /文件处于只读状态,不允许写 pint(rror、%s文件以只读状态打开,不允许写!”,fnae); wgetca1; els printf(”nr、 文件处于关闭状态,请先打开!n, fnme); getchr

14、1; lse prinf(nError、%s 文件不存在!n”, fname); /文件不存在 wgchar=1; Coe:oiCloeF() /Clos l*/ pritf(nnC:%s”,strpr(dname)); /显示路径 char fnaeMANAME; /定义字符串变量 int , , n=0; if(smp(trpr(dirname), trupr(usernam)!=) /关闭用户文件需在用户目录下 printf(rr!请确认您要关闭得就是在用户目录下!n); ee prntf(pend Fe() st:n); /罗列已处于打开得文件kExiD(diame);for(=;if

15、countk;i+)if(penk、ipen=1)/文件处于开启状态 i (iok、mod=0) |(ifpeni、oenmde=2)) /只读或者读写状态printf(%1s”,ufkufdfiei、fnae);n+;f((n%=0)(!=)prif(n);ritf(”nd 文件已被打开!n,n);if (n=0) wgtc=; prntf(nPease npt :”); get(nme); /接收关闭文件得文件名 ltrim(rrim(fnam)); /除去首尾空格 iExtF(fa); /获取文件物理地址 if(i = 0) k=Exst(usem); /获取用户文件信息 if(foen

16、ki、iopen0) /文件处于关闭状态 prin(Ero!%s文件已经被关闭!n, fme); lse /将文件关闭 ifopi、ifpn=0; ifonki、oemode=; printf(% hasbeen cloed sucessfull!, fame); le prntf(nEror、s文件不存在”, fname); 【测试结果】(此部分请同学们自己动手操作)Logn:Help:et:Opn:Read:Wite:1adional添加后变为:covered覆盖后变为:Cls:Atrib:Delet:Dir:Cl:(清屏)xit:【设计总结】首先通过这次得操作系统课程设计,让我认识到了实

17、际得编程操作并不难,难得就是对过程得设计,功能得定义以及最后得程序流程图得设计.其次说一下我得认识,这次得课程设计使我对一些东西有了更加深刻得认知与了解,更重要得就是巩固了新学得知识,以及对旧得知识进行了复习与了解,对一些细节方面得东西也有了更深刻得理解,所以这一次实践得机会,让我体会到了自己得不足之处,在以后得学习过程中,会加倍得认真努力。让我对文件得操作更加熟练了,并且对inx有了初步得了解。其实这次课程设计,不能说很困难:老师已经把大体得架构给我们了,我们需要添加得仅就是四个功能得设计(open、rite、delete、close)但就是它又不就是很容易,我们需要把整个得程序弄清,各个变量以及语句都要明白记住,这会关联到我们所定义得四个功能。总算就是把这次得课程设计搞定了,最让我开心得就是课设完成之后瞧着自己得作品.程序完整运行成功得那一瞬间最令我激动。总之,这次得课设使我重新认识了不少,以后我会更加努力!【参考文献】计算机操作系统教程(第三版)、张尧学 史美林张高计算机操作系统,西安电子科技大学出版社,方敏主编,2004、8

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!