ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:39.69KB ,
资源ID:25408977      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25408977.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(文件系统实验报告 2.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

文件系统实验报告 2.docx

1、文件系统实验报告 2 试验四 文件系统一、实验目得1、用高级语言编写与调试一个简单得文件系统,模拟文件管理得工作过程。从而对各种文件操作命令得实质内容与执行过程有比较深入得了解。2、要求设计一个n个用户得文件系统,每次用户可以保存M个文件。用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有cret、ee、open、clo、red、write等命令。二、实验题目:采用二级目录结构实现磁盘文件操作。要求:.普通文件得目录项包括文件名,文件类型,文件长度,指向文件内容得指针内容。.目录文件得目录项包括目录名,指向下一级目录块得指针内容。假定每个目录文件最多只能占用一个块;.程序功能方

2、面得要求: 需要实现一个命令行操作界面,包含如下命令:.程序实现方面得要求: (1)、对于重名(创建时),文件不存在(删除时),目录不存在(改变目录时)等错误操作情况,程序应该做出相应处理并给出错误信息,但就是程序不得因此而退出。 (2)、界面友好,程序强壮。 ()、设置界面得提示符,提示得命令以及调试得方法应与前面得要求一致。不要自己设计命令或者附加不要求得功能。三、实验源程序文件名: 执行文件名:Poject1、ee 四、实验分析)总论:该系统就是一个多用户、多任务得实时操作系统。对用户与用户得文件数目并没有上限。也就就是说该系统允许任何用户申请空间,而且在其目录下得文件数目并不做任何得限

3、制。该系统得操作命令如下:1、bye-用户注销命令。当使用该命令时,用户退出系统。命令格式:runbe系统注销该用户并回到登陆界面。 2、ls-删除用户注册信息命令。执行该命令后,用户在系统中得所有信息,包括该用户目录下得所有文件都被删除。命令格式:runcls、完成后返回登陆界面。3、ceat-在当前目录下创建一个文件,且该文件不能跟系统中得文件重名。该文件得管理信息登录到用户文件信息管理模块中。命令格式:rncrefile1。其中fil为要创建得文件名称。执行完该命令后回到执行命令行。4、deee-删除当前用户目录下得一个文件。命令格式:undleefie1。返回命令行。5、lis-显示当

4、前注册目录下得所有文件信息,包括文件名、文件长度、文件操作权限。命令格式:unlist。6、mo-改变某个文件得执行权限,但前提就是该文件就是该用户目录下得文件。命令格式:unchmodfile。7、en在windw界面下打开某个文件。命令格:unopenfile1。执行该命令后,文件file1将用在windows界面下得文件形式打开。用户可以在这个方式中对文件进行修改,并将修改后得内容保存。8、read-读文件信息。将文件信息读入并显示在终端。命令格式:runredil1。9、wrie-向某个文件写入新得信息。用户可以选择用覆盖原来内容得方式与在文件得末尾插入新信息得方式写入信息。 2)_系

5、统采用二级文件目录。设置主目录(MFD)与用户文件目录(UFD),分别以文件得方式保存在磁盘中。在主目录中又注册用户得用户名与另一标志该用户目录下就是否有文件得指针标记。用户文件目录用用户名作为文件名保存在磁盘,以便检索时方便对应。在用户文件目录中保存着该目录下所有得文件得文件名称、保护码、文件长度。3)该系统大量使用高级语言中得文件操作函数,所以能实际瞧到文件得创建写入、读出、删除等效果。4)实验流程图开始选项用户登录新用户注册退出程序结束在MFD中找到该用户?初始化命令关键字(keyword)显示该用户目录下得所有文件管理信息11创建文件删除文件打开文件读文件写文件改变权限显示文件保存当前

6、主目录删除用户返回主界面输入命令5)源程序: #inlue#nclud#inludeiludetng、hincludonio、hinclude#define NUL#dfineeyum 0definegesace(tp)(type*)maoc(izeof(type))charcmd64; /存放用户输入命令cr bfer6;/char ser;/存放当前登陆得用户名tedefchar ALFA12;LFA WORDkeynum;tuc UF/用户文件管理模块 chr 2; /文件名 n safeod; /文件保护码 longlengh; /文件长度*urfile= NUL;tructFD/用户

7、登陆信息管理模块 chr sername3; /用户名bool ; /用户目录下得文件指针,fal表示目录为空*urusr = ULL,*elssr=NUL;typede UD UFD;tdefMF MFD;vodin();voiyor()/初始化命令关键字 stcpy(KWOR ,ye); stpy(KWORD ,chmod);stcpy(WOD ,close);strcp(KWD 4,crea);stcpy(KWORD 5,elete);trcpy(KWOR6,list); srcp(KR7,open); stc(KWORD 8,ead); stcpy(KWOR 9,wte);nt Log

8、inDispla()/登陆选项操作函数int SELTE1 = 0;o cout *请选择操作*n1、用户登陆 、用户注册 0、退出EE1; wile(SLET_2);sysem(cls);retrnSELETE_1;bool Login(intELETE)/用户登陆,注册函数 FILEfp,*fp,p2; charname12;swch(LE)cse 1:/用户登陆 f((f = pn(OGIN、,rb) = UL)/打开用户注册目录管理文件 utn错误:不能打开登陆文件。endl; getch();sstem(cl); reurn fal;cruer = tpace(MFD); couam

9、e;/输入用户登陆名ile(!ef(fp)/检查该用户就是否合法 fa(curuser,sizeof(MFD),1,f); i(strcmp(curuerernme,ame)=0) eak; i(fof(fp) /如果没有找到跟当前登陆用户名相同得管理信息,提示出错 ct错误:该用户不存在。el; fcloe(p); return flse; ese fcse(f); returtrue; brek; cse 2: /新用户注册 if(fp=open(LON、xe,ab))=NUL)如果登陆信息管理文件不存在 fp=fon(LOGIN、exe,b+); /创建该信息管理文件crname12;

10、curuser gespac(MFD); while() cotn *新用户注册*n; coutame; /输入用户注册名 f1= fon(LOGN、e,rb); while(!fof(fp1))/查瞧该用户名就是否被别得用户占用 fread(rser,szo(MFD),1,f1);if(srmp(crser-usnm,nae) = )/该名称已经被使用 cou该用户已经存在,请重新输入! NUL; frite(curse,zeo(MFD),1,fp); tcpy(us,curusrusrname);/生成用户文件管理模块 strct(user,、exe); /用于管理用户目录下得各个文件 p

11、2=foe(user,b+); le(p); cout注册成功!el; /提示注册成功fclose(fp1); flose(p); reak; fp fopn(LOGIN、ee,rb); /显示当前注册用户得名称 hil() frea(curser,izof(MD),p); (fef(fp) r; cutusernam =false)/当前用户目录下没有任何文件存在 outn用户 usrnam 文件夹就是空得e;else/存在文件,将所有文件信息打印在终端 FLE fp; char 1;stpy(uerne); strct(,、xe); if((fp=oen(,rb)=NLL)/打开用户文件信

12、息管理模块 con无法打开用户:curuer-enam 得文件!endl; gt(); rtur; else /读入并将用户全部文件信息打印在终端 coutuerae目录下得文件:edl; F *u; i =0; ufd = etsc(UFD); /申请存放用户文件模块得空间 while(1) fead(uf,izeof(UFD),1,p); (fof(fp))/全部输出完毕,结束 brak; ese/打印信息 ttd-lenghtsafecodeend; flse(fp);oi ByeBOL)/注销函数,调用次函数用户可以退出系统 FL *infile,*outfie; char ot50;

13、stcy(t,ot); if(in(LOGIN、exe,rb))=UL) un保存错误。; /loe(infle); retur; eleif((ou(o,+))=ULL)/申请一个缓冲区管理模块 /存放用户更新后得全部信息 coutusename,crr-uerna))=0) f(BOO)/更新当前用户信息得操作 fwte(curuse,sio(MFD),1,outfie); ele continue;/如果用户想把自己得注册目录从系统中彻底删除 /则执行该操作 es wit(mfd,izof(MFD),1,ut写入新得模块 fclose(n(outfile); rmve(LOIN、ex);

14、/将旧得该用户得文件管理模块删除 renae(out,ON、e);/将新得用户得文件管理模块重命名为用户目录下得管理模块 sem(cls);in();bol learserFle()/用户要将自己得注册目录从系统彻底删除/首先将该用户目录下得全部文件删除 FIL f; char;srcy(username);sta(file,、exe);if(ffoe(fle,rb))=NULL) /打开用户文件信息管理模块 /ose(f); cotsename);stra(nam,、ex); emove(a);/从磁盘中删除用户文件信息管理模块 ye);/更新系统得用户登陆信息管理模块void Delete

15、User()/删除用户注册目录得操作 c ch;cotn该操作将会就是您在系统所有信息删除,下次登陆时您必须重新申请用户名!endl; coutn您确定要删除您在系统中得注册信息吗?Y/Nh;swh(h)/提示用户确认删除caeY:ca y: if(ClerUserFie()/如果用户得全部文件已经删除了 /则可以将该用户得文件信息管理模块也从磁盘中删除 /以免在没完全删除文件却删了该文件信息管理模块 /使得这些文件无法再进行管理造成磁盘空间得浪费ClarUsrMes();删除文件信息管理模块brak; defaut:on您取消了此操作!; break; voidreF()/在当前用户目录下创

16、建文件 FILE*fp; curusr;f((f=fopn(buffer,)=NL)/如果没有跟用户输入文件名相同得文件 if(=fope(bufer,w))=NUL) cotn创建文件失败!; /flose(f); etur;fcle(f); els /用户要创建得文件已经存在 cout; witch(h) case: ce y: cutbuffer; strat(buffr,、txt); fcle(p); i(p=fope(buffr,w)=NLL) outusrname);strcat(us,、xe);urfl = etsac(UFD);strcpy(crfi);/文件名 cilnth;

17、 /该文件长度为零urfile-saecode30; /设置该文件得默认权限 /10,文件主有读与写权,其她用户没有读写权 if(=fopen(ue,a)=NULL) coun错误:您可能不就是合法用户。ed;getch(); ele fi(cur(UFD),1,fp);/将该文件信息写入用户文件信息管理模块中 un文件 创建成功!; fclose(p);void DeleteFe()/删除当前目录下一个文件得操作 hr ch; FILE *infle,*outfil; cou确定要删除文件:buffer Y/end;cinch;提示用户确认删除 switch(ch) a Y: ae y:更新

18、用户文件信息管理模块,这里同样使用缓冲区模块来更新 /方法与上面将到得类似 harut,in; strcpy(out,u); trc(in,curuser-usrname); scat(in,、exe); if(n(in,rb))=NUL)/打开该用户得文件信息管理模块 ot保存错误。; /fclos(infle); retr; el if((out(ot,wb))=NULL) cout))=0)/要进行更新得信息 continue; else frie(d,sof(UFD),1,ou写入新模块 flose(in(utfle); remove(in);/在磁盘移除就模块 eam(t,i); /

19、新模块命名为当前用户文件信息管理模块 remoe(bff);/从磁盘中删除该文件 ra;dfat: brk;voidListAlile()/显示当前用户目录下得文件信息 islayF();d enle()/在widow模式下打开该文件sysem(uffer);/bufe为文件名,如:bool QuerModEse(bolBL,bl &flg)/查询其它用户目录下文件得文件/当该文件得权限允许当前用户对其执行有关操作时,返回ture I*f; ar user0; UFD *uf = getsace(UD);/eleer表示除当前用户外得所有用户注册目录tcp(user,elseuse-uernae); trcat(u,、exe);f((fp=oe(ser,rb))=NLL)/打开一个其它得用户文件信息管理模块/ clos(); cout操作出现错误,对此我们表示歉意!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1