操作系统课程设计报告_8.docx

上传人:lao****ou 文档编号:865757 上传时间:2024-06-29 格式:DOCX 页数:26 大小:86.70KB
下载 相关 举报
操作系统课程设计报告_8.docx_第1页
第1页 / 共26页
操作系统课程设计报告_8.docx_第2页
第2页 / 共26页
操作系统课程设计报告_8.docx_第3页
第3页 / 共26页
操作系统课程设计报告_8.docx_第4页
第4页 / 共26页
操作系统课程设计报告_8.docx_第5页
第5页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《操作系统课程设计报告_8.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计报告_8.docx(26页珍藏版)》请在第一文库网上搜索。

1、B天泽科技大挈猱作系疣薛福被花赧告专业:学号:姓名:提交日期:【设计目的】(1)本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能和内部实现。(2)结合数据结构、程序设计、计算机原理等课程的知识,设计一个二级文件系统,进一步理解操作系统。(3)通过分对实际问题的分析、设计、编程实现,提高学生实际应用、编程的能力【设计内容】为1inUX系统设计一个简单的二级文件系统。要求做到以下几点:1 .可以实现下列几条命令:1ogin用户登录dir歹U目录create创建文件de1ete删除文件open打开文件c1ose关闭文件read读文件write写文件cd进出目录2 .列目录时

2、要列出文件名,物理地址,保护码和文件长度3 .源文件可以进行读写保护【实验环境】C+/VC+【源程序清单】#inc1udestdio.h#inc1ude,string.h#inc1ude,conio.hinc1ude,std1ib.h# defineMAXNAME25*the1argest1engthofmfdname,ufdname,fi1ename*/# defineMAXCHI1D50*the1argestchi1d*/# defineMAX(MAXCH11D*MAXCHI1D)*thesizeoffaddrno*/typedefstruct*thestructureofOSFI1E*/

3、(intfpaddr;*fi1ephysica1address*/intf1ength;*fi1e1ength*/intfmode;*fi1emode:0-ReadOn1yJ-WriteOn1y;2-ReadandWrite;3-Protect;*/charfnameMAXNAME;*fi1ename*/OSFI1E;typedefstruct*thestructureofOSUFD*/charufdnameMAXNAME;*ufdname*/OSFI1Eufdfi1eMAXCHI1D;*ufdownfi1e*/OSUFD;typedefstruct*thestructureofOSUFD,1

4、OGIN*/(charufdnameMAXNAME;*ufdname*/charufdpword8;*ufdpassword*/OSUFD_1OGIN;typedefstruct*fi1eopenmode*/(intifopen;/*ifbpen:0-c1osej-open*/intopenmode;*O-readon1y,-writeon1y,2-readandwrite,3-initia1*/OSUFD_OPENMODE;OSUFD*ufyiMAXCHI1D;*uWandufdownfi1es*/OSUFD-1OGINufdp;intucount=0;*thecountofmfdsufds

5、*/intfcountMAXCHI1D;*thecountofufdsfi1es*/intIoginsuc=O;*whether1oginsuccessfu11y*/charUSernameMAXNAME;*record1oginusersname22*/chardirname1MAXNAME*recordcurrentdirectory*/intfpaddrnoMAX;*recordfi1ephysica1addressnum*/OSUFD_0PENM0DEifopenMAXCHI1DMAXCHI1DJ;*recordfi1eopenc1ose*/intwgetchar;*whetherge

6、tchar()*/FI1E*fp_mfd,*fp_ufd,*fp_fi1e_p,*fp_fi1e;void1oginF();*1OGINFi1eSystem*/voidDirF();*DirFi1eSystem*/voidCdF();*ChangeDir*/voidCreateF();*CreateFi1e*/voidDe1eteF();*De1eteFi1e*/voidModifyFM();*ModifyFi1eMode*/voidOpenF();/*0penFi1e*/voidC1oseF();*C1oseFi1e*/voidReadF();*ReadFi1e*/voidWriteF();

7、*WriteFi1e*/voidQuitF();*QuitFi1eSystem*/voidhe1p();char*rtrim(char*str);*removethetrai1ingb1anks.*/char*1trim(char*str);*removetheheadingb1anks.*/voidInputPW(char*password);*inputpassword,use,*rep1ace*/voidSetPANo(intRorW);*Setphysica1addressnum*/intExistD(char*dirname);*WhetherDirNameExist,Exist-i

8、,NotExist-O*/intWriteF1();*writefi1e*/intExistF(char*fi1ename);*WhetherFi1eNameExist,Exist-i,NotExist-O*/intFindPANo();*findoutphysica1addressnum*/voidc1rscr()(system(c1s,);)intmain()(int!,choiceI;charchoice50;*choiceOperationidir,create,de1ete,open,de1ete,modify,read,write*/intchoiceend=I;*whetherc

9、hoiceend*/char*rtrim(char*str);*removethetrai1ingb1anks.*/char*1trim(char*str);*removetheheadingb1anks.*/if(-W=fopen(cAosfi1emfd.txt,rb,)=NU11)(fp-mfd=fopen(,cosfi1emfd.txt,wbu);fc1ose(fp_mfd);)fbr(i=O;i,strupr(dirname);e1seprintf(Badcommandorfi1ename.nC%s,strupr(username);gets(choice);/输入所选择的strcpy

10、(choice,1trim(rtrim(str1wr(choice);将输入的值赋给choiceif(strcmp(choice,dir)=0)choice1=1;依次将输入的值与dir,create等进行比较e1seif(strcmp(choice,create)=0)choice1=2;/如果输入Create将ChOiCeI置为2通过SWitCh选择,以下依次类推e1seif(strcm(choice,de1e1e)=0)choiceI=3;e1seif(strcmp(choice,attrib,)=0)choice1=4;e1seif(strcmp(choice,open)=0)choi

11、ce1=5;e1seif(strcmp(choice,c1ose,)=0)choice1=6;e1seif(strcm(choice,read,)=0)choice1=7;e1seif(strcmp(choice,write)=0)choice1=8;e1seif(strcmp(choice,exit)=0)choice1=9;e1seif(strcmp(choice,c1s)=0)choice1=10;e1seif(strcm(choice,cd)=0)choice1=11;e1seif(strcmp(choice,he1p,)=0)choice1=20;e1sechoice1=12;/ch

12、oice1=12时跳转到defau1t,然后继续循环switch(choice1)(case I :DirF();choiceend=1;break;case2:CreateF();ChOiCeend=1;if(!wgetchar)getchar();break;case3:De1eteF();choiceend=1;if(!wgetchar)getchar();break;case4:ModifyFM();choiceend=IJf(Jwgetchar)getchar();break;case5:OpenF();choiceend=1;if(Jwgetchar)getchar();break

13、;case6:C1oseF();choiceend=1;if(!wgetchar)getchar();break;case7:ReadF();ChoiCeend=1;if(!wgetchar)getchar();break;case8:WriteF();choiceend=1;if(!wgetchar)getchar();break;case9printf(nYouhaveexitedthissystem.);QuitF();exit(O);break;case10:c1rscr();choiceend=1;break;case II :CdF();choiceend=1;break;case

14、20:he1p();choiceend=1;break;defau1cchoiceend=0;e1seprintf(,nAccessdenied.*);登录成功)voidhe1p(void)printf(nTheCommand1istn);printf(,nCdAttribCreatewriteReadOpenC1sDe1eteExitC1osen);char*rtrim(char*str)*除去末尾端的空格指针指向字符串第一个*/(intn=str1en(str)-1;n为字符串长度减1whi1e(n=0)(if(*(str+n)!-)末尾不存在空格(*(str+n1)=t0;n表示结束符break;)e1sen-;如果存在空格将空格去掉1if(nO)strO=,O,;returnstr;)char*1trim(char*str)/*除去前端

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

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



客服