资源描述:
《操作系统上机实验代码》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、修改后的md命令程序:intMdComd(intk)//md命令处理函数{//命令形式:md<目录名>//功能:在指定路径下创建指定目录,若没有指定路径,则在当前目录下创建指定目录。//对于重名目录给出错误信息。目录与文件也不能重名。//学生可以考虑命令中加“属性”参数,用于创建指定属性的子目录。命令形式如下://md<目录名>[<属性>]//属性包括R、H、S以及它们的组合(不区分大小写,顺序也不限)。例如://mduserrh//其功能是在当前目录中创建具有“只读”和“隐藏”属性的子目录user。shorti,s,s0
2、,kk;charattrib=(char)16,*DirName;FCB*p;charstr[20]="
3、";kk=SIZE/sizeof(FCB);if(k<1){cout<<"错误:命令中没有目录名。";return-1;}if(k>2){cout<<"错误:命令参数太多。";return-1;}s=ProcessPath(comd[1],DirName,k,0,attrib);if(s<0)returns;//失败,返回if(!IsName(DirName))//若名字不符合规则{cout<<"命
4、令中的新目录名错误。";return-1;}i=FindFCB(DirName,s,attrib,p);if(i>0){cout<<"错误:目录重名!";return-1;}if(k==2)//命令形式:md<目录名><属性符>{i=GetAttrib(strcat(str,comd[2]),attrib);//由i=GetAttrib(comd[2],attrib);if(i<0)returni;}s0=FindBlankFCB(s,p);//找空白目录项if(s0<0)//磁盘满returns0;s0=M_
5、NewDir(DirName,p,s,attrib);//在p所指位置创建一新子目录项if(s0<0)//创建失败{cout<<"磁盘空间已满,创建目录失败。";return-1;}return1;//新目录创建成功,返回}/////////////////////////////////////////////////////////////////////////////修改后的Help命令程序代码:voidHelpComd()//help命令,帮助信息(显示各命令格式){inti=1;//用来选择需要查看的命
6、令的序号cout<<"*******本系统主要的文件操作命令简述如下********";cout<<"0、退出帮助t";cout<<"1、createt";cout<<"2、opent";cout<<"3、write";cout<<"4、readt";cout<<"5、closet";cout<<"6、delt";cout<<"7、dir";cout<<"8、cdt";cout<<"9、mdt";cout<<"10、rdt";cout<<"11、ren";cout<<"12、att
7、ribt";cout<<"13、copyt";cout<<"14、typet";cout<<"15、rewind";cout<<"16、fseekt";cout<<"17、blockt";cout<<"18、closeallt";cout<<"19、uof";cout<<"20、undelt";cout<<"21、exitt";cout<<"22、promptt";cout<<"23、fat";cout<<"24、checkt";cout<<"25、fct";cout<<"26、batch
8、";do{cout<<"请输入您要查询的命令的序号:";cin>>i;switch(i){case0:break;case1:cout<<"create<文件名>[<文件属性>] ——创建新文件,文件属性是r、h或s。";break;case2:cout<<"open<文件名>——打开文件,操作类型可为r、h或(与)s。";break;case3:cout<<"write<文件名>[<位置/app>[insert]]——在指定位置写文件(有插入功能)。";break;case4:cout<<"
9、read<文件名>[<位置m>[<字节数n>]]——读文件,从第m字节处读n个字节。";break;case5:cout<<"close[<文件名>] ——关闭文件。";break;case6:cout<<"del<文件名>——撤消(删除)文件。";break;cas