收藏 分销(赏)

操作系统原理实验指导书2013.doc

上传人:快乐****生活 文档编号:2124757 上传时间:2024-05-16 格式:DOC 页数:45 大小:570.04KB
下载 相关 举报
操作系统原理实验指导书2013.doc_第1页
第1页 / 共45页
操作系统原理实验指导书2013.doc_第2页
第2页 / 共45页
操作系统原理实验指导书2013.doc_第3页
第3页 / 共45页
操作系统原理实验指导书2013.doc_第4页
第4页 / 共45页
操作系统原理实验指导书2013.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、操作系统原理实验指导书2013 作者: 日期:2 个人收集整理 勿做商业用途计算机科学与技术专业适用操作系统原理实验指导书使用班级:计软11南京工业大学电子与信息工程学院2013年5月40目 录一、实验目的1二、实验要求与内容12.1 实验题目12.2 初始目录结构12。3 系统操作命令简介12。4 几点说明2三、设计方案33.1 采用FAT文件格式33.2 目录项(FCB)结构33。3 根目录43。4 主要函数43.5 用户已打开文件表(UOF)53。6 程序中有关变量的说明51。 当前目录curpath数据结构52。 删除文件恢复表udtab数据结构53. 全局变量ffbp和Udelp54

2、。 全局数组comd8PATH_LEN65。 全局数组temppathPATH_LEN63。7 主要函数的流程图61。 主函数main()的流程图62. create命令流程图63. cd命令流程图74。 del命令流程图85。 dir命令流程图86。 md命令流程图97. rd命令流程图98。 open命令流程图109. close命令流程图1010。 write命令流程图1111。 read命令流程图1212. copy命令流程图1213。 ren命令流程图1414。 attrib命令流程图1415。 undel命令程序流程图1516。 FindPath( )函数程序流程图1517。 Fi

3、ndFCB( )函数程序流程图1518. ProcessPath( )函数程序流程图17四、实验任务184。1 修改md命令184.2 修改Help命令184.3 修改命令行预处理程序184.4 新增fc命令,实现两个文件的比较184.5 新增replace命令,实现文件取代184.6 新增move命令,实现文件“搬家”及子目录改名194.7 新增batch命令,实现批处理194.8 修改close、type等命令,允许不带文件名参数214.9 完善copy命令221。 改正某些缺陷222。 允许覆盖同名文件(选做内容)224。10 增加输出重定向功能(选做内容)221. type命令的输出重

4、定向形式222. dir命令的输出重定向形式234。11 修改del、copy等命令,使其可以使用统配符 *(选做内容)234。12 修改copy命令,增加合并复制功能(选做内容)234。13 修改程序,实现多磁盘文件系统(选做内容)244.14 修改磁盘块容量(选做内容)244。15 修改undel命令(选做内容)251. 删除文件恢复表udtab不用数组存储,而直接存储在磁盘空间252. 修改undel命令的执行方式并增强其功能253. 采用类似于Windows的回收站方案264.16 修改read命令,允许不带文件名参数(选做内容)264。17 修改write命令,允许不带“文件名”参数

5、(选做内容)264.18 修改write命令,增加“删除”方式(选做内容)27五、文件系统中操作命令使用说明275.1 基本系统的命令275。2 增强系统的命令32六、学生应提交的实验材料396.1 实验报告396。2 源程序清单及其可执行文件396。3 程序测试、运行的结果39操作系统原理实验指导书一、实验目的理解操作系统文件系统的某些工作原理,学习文件操作命令和目录操作命令的设计方法。通过实验,使学生加深对操作系统文件系统某些问题的理解,归纳学习方法和思考方法,做到理论联系实际。培养学生分析问题、解决问题的能力,提高学生软件设计能力和逻辑思维能力.二、实验要求与内容2.1 实验题目文件系统

6、的模拟设计设计实现一个简单的文件系统,包括目录文件、普通文件,以及一些文件操作命令和目录操作命令(例如可以模仿DOS的有关命令)。具体要求如下列2.2和2.3。2。2 初始目录结构程序初始化时构造如图1所示的目录结构。binusrdevuserlibbinlisunmaauto图1 初始目录树目录文件普通文件【图例说明】根目录图中auto是(普通)文件(初始化时假设是空文件),其余都是子目录(目录文件).2.3 系统操作命令简介在本文件系统中,要求可以实现如下操作:n 改变当前目录:cd 目录名。当前目录(工作目录)转移到指定目录下。指定目录不存在时,给出错误信息。若命令中无目录名,则显示当前

7、目录路径。n 创建文件:create 文件名 属性。创建一个指定名字的新文件,即在目录中增加一目录项,不考虑文件的内容。对于重名文件给出错误信息.n 删除文件:del 文件名。删除指定的文件,即清除其目录项和回收其所占用磁盘空间.对于只读文件,删除前应询问用户,得到同意后方能删除。当指定文件正在使用时,显示“文件正在使用,不能删除的信息,当指定文件不存在时给出错误信息。 n 显示目录:dir 目录名 属性。显示“目录名指定的目录中文件名和第一级子目录名。若指定目录不存在,则给出错误信息。n 创建目录:md 目录名.在指定路径下创建指定目录,若没有指定路径,则在当前目录下创建指定目录.对于重名目

8、录给出错误信息。n 删除目录:rd 目录名。若指定目录为空,则删除之,否则,给出“非空目录不能删除”的提示。不能删除当前目录。n 打开文件:open 文件名。若指定文件存在且尚未打开,则打开之,并在用户打开文件表(UOF)中登记该文件的有关信息。若指定文件已经打开,则显示“文件已打开的信息;若指定文件不存在,则给出错误信息。只读文件打开后只能读不能写。n 写文件:write insert.在文件的指定位置处写入新内容。n 读文件:read 文件名 位置m 。从已打开文件中读指定内容并显示.n 关闭文件:close 文件名。若指定文件已打开,则关闭之,即从UOF中删除该文件对应的表项。若文件未打

9、开或文件不存在,分别给出有关信息。n 显示文件内容:type 。显示指定文件的内容.若指定文件不存在,则给出错误信息。n 复制文件:copy 源文件名 目标文件名。命令功能:为目标文件建立目录项,分配新的盘块,并将源文件的内容复制到目标文件中。n 文件改名:ren 新文件名。将指定文件的名字改为“新文件名。若原文件不存在,给出错误信息.若原文件存在,但正在使用,也不能改名,同样显示出错信息。应检查新文件名是否符合命名规则以及是否存在重名问题。n 显示、修改文件或目录属性:attrib 文件名 文件属性。若命令中无“文件属性”参数,则显示指定文件的属性;若命令中有“文件属性”参数,则修改指定文件

10、的属性。此命令对目录名同样适用。2.4 几点说明n 命令中的目录名和文件名可以统称为路径名,支持绝对路径(又称全路径)和相对路径;n 路径名是由目录结构中各级目录文件名和普通文件名(必定是最后一个名)用分隔符“/连接而成的字符串组成。其中以字符“/”开始的路径名是绝对路径,表示从根目录开始;不是以字符“/”开始的路径名是相对路径,表示从当前目录开始.当前目录又称工作目录。n 本系统规定,名字(文件名或目录名)的命名规则如下:(1) 名字长度不能超过FILENAME_LEN1个字节,即10个字符(符号常数FILENAME_LEN为11)。允许输入的名字超过10个字符,但只有前10个字符有效;(2

11、) 名字一般由字母(区分大小写)、数字、下划线等组成,名字允许是汉字;(3) 名字不能包含以下16个字符之一:” + , / : ; = ? space(空格)(4) 名字中允许包含字符“。,但它不能是名字的第一个字符,故“。”、“.abc”、“.”和“.。abc等等都是不合法的名字。“。”代表父目录是例外,但它并非由用户通过键盘输入的名字,故不需要符合名字的命名规则。n 本系统中,命令名(如dir)和命令参数中的有关关键字(如append或app、insert或ins等)不区分大小写.文件名和目录名中的字母是区分大小写的。n 命令格式中,“。.代表某个字符串 ,“ ”中内容为可选项.三、设计

12、方案本系统提供的参考程序在C+环境中开发,下面介绍系统的设计方案。3.1 采用FAT文件格式文件在磁盘上的组织采用FAT文件格式,为了设计程序方便,本系统的FAT表用整型数组FATK表示(K为总盘块数,本系统中假定K=5000,即共有5000个盘块),而实际的操作系统,FAT表是存储在磁盘中的,当系统启动时装入内存。FAT0中存储空闲盘块数。磁盘空间用字符数组DiskKSIZE (其中SIZE为每个盘块的字节数,即盘块的容量)表示.本系统设定磁盘块容量为64B(功能较完整程序中盘块容量改为256B).3.2 目录项(FCB)结构本模拟系统的文件目录项(FCB)大小为16字节结构如下:文件名属性

13、首块号文件长度(11字节)(1字节)(2字节)(2字节)struct FCB/每个目录项16个字节char FileName11;/文件名最多10个字符且以0结尾char Fattrib;/文件属性short int Addr;/文件首块号short int Fsize;/文件长度;u 为简单,本系统不考虑文件扩展名,文件名为110个字符,以结尾标记0存储(实际操作系统目录项中文件名一般没有结尾标记),命令中输入的文件名若超过10个则截取前10个字符。u 文件属性为1个字节,其二进制位对应的属性如下图所示.D7D6D5D4D3D2D1D00001表示目录0/101表示系统0/11表示隐藏0/1

14、0/11表示只读u 文件的首块号Addr=0代表空文件(此时文件长度Fsize=0).文件名(目录名)的第一个字符的ASCII码为0E5H或00H,代表空目录项。其中0E5H是目录项被删除后的标志,00H代表该目录项从未使用过。u 每个目录项占用16个字节,因系统中假设磁盘块大小SIZE=64,因此,每个盘块可存储4个目录项。u 除根目录外,每个目录中的第一个目录项存储父目录的FCB(该目录项的名字为“。.”),其地址是父目录的首块号,它的作用是相当于指向父目录的指针,用于实现从该目录退回父目录。目录项“。”是在创建目录时,由系统自动建立的,它不能被rd命令删除。3。3 根目录本系统假设根目录

15、存储在130号盘块中,即存储在Disk1Disk30的盘快中。因每个盘块可存储4个目录项,故本系统根目录中的文件目录项及子目录项最多共计120个。从31号盘块开始为文件区,用于存储文件及子目录。本系统初始化时,图1所示的目录树的磁盘分配情况如图2所示。根目录Disk1 bin,usr,auto,dev Disk31:. Disk33:. Disk32:.,user,lib,binDisk30 Disk35:. Disk36:.Disk34:.,li,sun,ma Disk37:. Disk38:. Disk39:.图2 初始目录树的磁盘空间分配指定目录3。4 主要函数系统参考程序的主要函数如下

16、:main()主函数AttribComd()attrib命令处理函数CdComd()cd命令处理函数CloseComd()close命令处理函数CopyComd()copy命令处理函数CreateComd()Create命令处理函数DelComd()del命令处理函数DirComd()dir命令处理函数MdComd()md命令处理函数OpenComd()open命令处理函数RdComd()rd命令处理函数ReadComd()read命令处理函数RenComd()ren命令处理函数TypeComd()type命令处理函数UndelComd()undel命令处理函数WriteComd()write

17、命令处理函数ParseCommand()分析、分解命令行ExecComd()执行命令FindPath()查找指定目录路径的首块号FindFCB()查找指定文件(或目录)的首块号ProcessPath()将路径名分离成目录路径与文件名两部分3.5 用户已打开文件表(UOF)设置一张“用户已打开文件表(UOF),用于记录用户当前正在使用文件的情况.本系统允许用户最多同时打开或建立S个文件,故用户已打开文件表UOF共有S个登记栏。用户请求打开或建立一个文件时,相应的文件操作把有关该文件的信息登记到UOF中。UOF表项的结构如下:struct UOF/定义用户打开文件表的结构char fnamePAT

18、H_LEN;/文件全路径名char attr;/文件属性,1=只可读;0=可读写short int faddr;/文件的首块号short int fsize;/文件大小(字节数)FCB *fp;/指向该文件的目录项指针short int state;/状态:0=空表项;1=新建;2=打开short int readp;/读指针,指向某个要读的字符位置,0=空文件short int writep;/写读指针,指向某个要写读的字符位置;本程序中,用户打开文件表用数组UOF uofS表示,其中S=32,即最多允许同时打开32个文件.读指针和写指针用于指出对文件进行存取的当前位置。fp指向该UOF登记

19、项对应的文件的目录项。系统启动时, UOF常驻内存,退出系统时,UOF不需要保存。3。6 程序中有关变量的说明1。 当前目录curpath数据结构struct CurPath short int fblock;/当前目录的首块号char cpathPATH_LEN;/当前目录路径字符串;当前目录用全局变量curpath存储:CurPath curpath;根目录的路径字符串cpath是“/”,首块号为1。2。 删除文件恢复表udtab数据结构struct UnDel /恢复被删除文件信息表的数据结构char gpathPATH_LEN;/被删除文件的全路径名(不含文件名)char ufname

20、FILENAME_LEN;/被删除文件名short ufaddr;/被删除文件名的首块号short fb;/存储被删除文件块号的第一个块号(链表头指针)/首块号也存于fb所指的盘块中;与实际系统不同,为简化程序设计,本系统的被删除文件恢复表用(全局变量)数组udtab存储,定义为:UnDel udtabDM;程序中DM值为40,即最多保存40个被删除文件的信息(若删除文件数超过40个时,总是保持最新的40个被删除文件信息).一个被删除文件恢复后,其在udtab表中的信息将被删除。退出系统时该表可存于文件UdTab.dat中。3。 全局变量ffbp和Udelpshort Udelp; 它是udt

21、ab表的第一个空表项的下标,系统初始化时为0。当Udelp=DM时,表示表已满,需清除最早的表项(后续表项依次前移)。系统退出存盘时,其值保存到0号盘块Disk0中,以便下次启动系统使用.short ffbp; 它是分配盘块时FAT表的起始指针(下标),这样使得分配盘块类似于分区存储管理的“循环首次适应”分配算法,这有利于被删除文件的恢复。系统退出存盘时,其值也保存到0号盘块Disk0中。 4. 全局数组comd8PATH_LENchar comd8PATH_LEN;它在分析命令时使用,其中comd0存放命令字符串,comd1,。.,comd7用于存放命令参数。5. 全局数组temppathP

22、ATH_LENchar temppathPATH_LEN; 用于临时存储文件的路径名(绝对路径名而非相对路径名)。例如,设当前目录为/usr,执行命令open user/boy时,系统将文件boy的全路径名(即绝对路径名) ”/usr/user/boy”,存放在temppath中,在登记UOF表项时,再将temppath存储到表项的fname域中。其他一些命令处理过程中也会用到temppath.3。7 主要函数的流程图1。 主函数main()的流程图图3 主函数流程图开始初始化结束输入命令行调用函数ParseCommand( )分解命令行是是exit吗?否调用执行命令函数ExecComd( )

23、执行输入的命令采用条件编译实现:初始化目录树、FAT、Disk、UOF等或者从文件读入FAT、Disk等数据要保存数据吗?保存相关数据是否主函数main()的流程图如图3所示。2。 create命令流程图创建新文件的命令格式如下:create 文件名 文件属性命令中的“文件属性规定了文件的使用权限,分为“只读、“隐藏”、“系统”等,分别用“r”、“h”、“s”的形式表示,程序内部分别用1、2、4表示(参见3。2节的介绍),它们可以组合使用,例如“rh”表示“只读”且“隐藏属性的文件,其属性值为3,又如“rhs”表示“只读”且“隐藏且“系统”属性的文件,其属性值为7。若命令中无可选项“文件属性”

24、,则创建的文件是属性值为0的普通文件,即不是只读文件,也不是隐藏文件,也不是系统文件。create命令中的“文件名允许是绝对路径名或相对路径名,例如命令create /usr/user/boy表示在根目录的usr子目录中的user子目录中建立文件boy,该文件为普通文件。又如create bin/mail rh图4 “创建文件”流程图否是开 始查temppath中最后一目录该目录中有该文件?在该目录中找到空登记栏登记该文件名的目录项;在UOF中登记该文件,状态=建立,读指针=0(空文件),显示:同名文件 不能建立返回查找“文件名”中的路径,并将该路径存于temppath中。 该路径存在吗?否显

25、示:路径错误是返回显示“文件创建成功”表示在当前目录中的bin子目录中建立文件mail,该文件为“只读”且“隐藏属性的文件。执行create命令时,当路径不存在或有同名文件,则分别给出错误信息。create命令处理函数CreateComd()的简化流程图如图4所示.3。 cd命令流程图命令形式:cd 目录名。命令功能:改变当前目录,即把指定目录变为当前目录(工作目录)。指定目录不存在时,给出错误信息。若命令中无目录名,则显示当前目录路径名.cd命令的处理函数为CdComd(),其简单流程图如图5所示.开始将查找过程得到的全路径名以及指定目录的首块号保存到当前目录变量中返回是是否否图5 cd命令

26、函数流程图显示错误信息是显示当前目录否命令格式正确吗?命令中有参数吗?指定路径正确吗?4。 del命令流程图命令形式:开始命令格式正确吗?调用FindFCB( )查找指定文件指定文件存在吗?删除指定文件的目录项回收该文件占用的磁盘空间返回是是否否图6 del命令函数流程图显示相关的错误信息指定路径正确吗?是否调用ProcessPath( )查找指定路径文件正在使用吗?是否否开始命令格式正确吗?在指定目录中逐个查找目录项,显示文件或目录的名字,以及显示文件的长度或子目录标志。最后显示文件和目录的统计数以及文件的总字节数和磁盘剩余字节数。返回是否图7 dir命令函数流程图显示相关的错误信息指定路径

27、正确吗?是否调用FindPath( )查找指定路径否del 属性.命令功能:显示“目录名”指定的目录中文件名和第一级子目录名。若指定目录不存在,则给出错误信息.如果命令中没有指定目录名,则显示当前目录下的相应内容。若命令中无“属性”参数,则显示指定目录中“非隐藏”属性的全部文件名和第一级子目录名;若命令中有“属性”参数,则仅显示指定属性的文件名和目录名。属性参数的形式是“属性符号”,其中属性符号有r、h和s三种(不区分大小写),分别表示“只读、“隐藏”和“系统三种属性,它们可以组合使用且次序不限。例如“rh”,表示要求显示同时具有“只读和“隐藏属性的文件和目录名.dir命令显示文件名时,同时显

28、示该文件长度;显示目录名时,同时显示“DIR”的字样。命令使用举例:dir /usr |h 显示根目录下usr子目录中全部“隐藏属性的文件名和子目录名dir .。 显示当前目录的父目录中全部“非隐藏”属性的文件和子目录名(包括“只读”、“系统”属性的文件和目录名也显示)。dir命令的处理函数为DirComd(),其简单流程图如图7所示.6。 md命令流程图开始命令格式正确吗?在指定目录中查找空目录项(若已无空目录项,则为其分配新的盘块),找到后为新目录登记目录项。为新目录分配1盘块,用于登记该目录的第一个目录项,即“.”目录项。返回是否图 8 md命令函数流程图显示相关的错误信息指定路径正确吗

29、?是否新目录有重名吗?是否命令形式:md 目录名.命令功能:在指定目录路径下创建指定子目录。若没有指定路径,则在当前目录下创建指定子目录。对于重名目录给出错误信息.md命令的处理函数为MdComd(),其简单流程图如图8所示。7。 rd命令流程图命令形式:rd 目录名。命令功能:删除子目录。若指定目录为空(仅有一个“。.目录项的目录为空目录),则删除之,否则,给出“非空目录不能删除”的提示。不能删除当前目录。rd命令的处理函数为RdComd(),其简单流程图如图9所示。开始命令格式正确吗?回收指定目录的磁盘空间,在其父目录中删除指定目录对应的目录项。返回是否图 9 rd命令函数流程图显示相关的

30、错误信息是否是否指定路径正确吗?要删当前目录吗?指定目录空的吗?是否8。 open命令流程图命令形式:open 文件名。命令功能:打开文件.若指定文件存在且尚未打开,则打开之,并在用户打开文件表(UOF)中登记该文件的有关信息。若指定文件已经打开,则显示“文件已打开”的信息;若指定文件不存在,则给出错误信息。open命令的处理函数为OpenComd(),其简单流程图如图10所示.开始在UOF中登记指定文件的有关信息。显示文件打开成功。返回是是否图10 open命令函数流程图显示相关的错误信息是是否否是否命令格式正确吗?指定路径正确吗?指定文件存在吗?文件已打开了吗?UOF表已满了吗?否9。 c

31、lose命令流程图命令形式:close 文件名。命令功能:关闭文件.若指定文件已打开,则关闭之,即从UOF中删除该文件对应的表项。若文件未打开或文件不存在,分别给出有关信息。close命令的处理函数为CloseComd(),其简单流程图如图11所示。开始指定文件的首块号和长度保存到其目录项中;删除指定文件在UOF中的登记项。显示文件关闭成功。返回是否图11 close命令函数流程图显示相关的错误信息是否命令格式正确吗?指定文件打开了?10。 write命令流程图命令形式:write 文件名 insert.命令功能:向文件中写入信息。命令中若无“位置参数,则在写指针所指位置写入文件内容;若提供“

32、位置”参数,则在对应位置写入内容。位置可以是整数n,是指在文件的第n个字节处开始写入(位置从1开始编号)。“位置参数可以是“append”(前3个字符有效,不区分大小写),表示在文件尾部写入信息;参数“insert”(前3个字符有效,不区分大小写)表示新写入的内容插入到对应位置,对应位置开始的原内容后移。若无参数“insert”,写入内容代替文件原先的内容(改写方式)。写入内容中的“n代表“回车”符.写入完毕调整文件长度和写指针值。若文件未打开或文件不存在,分别给出错误信息。本系统约定:刚打开的文件,其写指针指向文件末尾.目前参考程序的write命令只有“插入”和“改写”两种功能,尚未提供“删

33、除”功能。write命令的处理函数为WriteComd(),其简单流程图如图12所示。开始是否否图12 write命令程序流程图是是否否是否命令中有文件名?指定文件已打开?是只读文件吗?参数只有文件名?第2参数是|app?是显示:“命令中无文件名”显示:“文件未打开。”显示:“只读文件不能写”从写指针位置写改写方式。从文件尾部写改写方式。第2参数是|ins?从写指针位置写,插入方式。是写入位置正确?显示“写入位置错误。”否否有第3参数吗?是第3参数是ins?是从写入位置写暂定为改写方式。显示“命令参数错误。”否从写入位置写,插入方式。返回返回等待用户输入写入的内容输入内容接到写入点是插入方式吗

34、?写入点开始的原内容接到写入内容后边是否 11. read命令流程图命令形式:read 文件名 位置m 字节数n。命令功能:从已打开的文件中读文件内容并显示。若无“位置”参数,则从读指针所指位置开始读。若有“位置”参数,则从指定位置处开始读。位置m是指从文件开头第m个字节处读(m从1开始编号)。若无“字节数n参数,则从指定位置读到文件末尾;若有“字节数n”参数,则从指定位置开始读n个字节。若文件未打开或文件不存在,分别给出错误信息。read命令的处理函数为ReadComd(),其简单流程图如图13所示。开始按命令要求读出信息并显示返回是否否图13 read命令程序流程图显示“命令中参数太多或太

35、少”是是否否否是命令格式正确吗?文件已打开了吗?是空文件吗?命令只有1个参数?读位置正确吗?是显示“文件未打开或不存在。”显示“是空文件,不能读。”从读指针所指位置读到文件尾部显示“命令中读位置错误。”否是命令有第3参数?从读位置开始读到文件尾部否是读字节数n正确吗?显示“命令中读字节数错误。”从读位置开始读n个字节调整读指针12。 copy命令流程图命令形式:copy 目标文件名。命令功能:为目标文件建立目录项,分配新的盘块,并将源文件的内容复制到目标文件中.若目标文件与源文件所在的目录相同,则只能进行更名复制,此时目标文件名不能省;若目标文件与源文件所在的目录不同,则既可更名复制也可同名复

36、制,同名复制时目标文件名可省。例如,命令copy mail email(1) 若当前目录中不存在email(目录或文件),则该命令将当前目录中的文件mail,复制成当前目录下的文件email;(2) 若当前目录下存在email,但email是子目录名,则将当前目录中的文件mail,复制到当前目录中的email子目录内,文件名为mail(同名复制);此时若email目录内已经存在名字为mail的文件或目录,则出现重名错误;(3) 若当前目录内存在email文件,则出现重名错误(并不询问是否覆盖);(4) 若当前目录内不存在源文件mail(或者虽然有mail,但它是子目录名),则也报错。【注】l

37、在同一目录中,各目录项不能重名(不管是文件名还是子目录名)l 上述(2)(3)是为了简化程序设计,真实系统一般与这种处理方式有区别,请参见实习任务的“完善copy命令”中的叙述。copy命令的处理函数为CopyComd(),其简单流程图如图14所示.开始为目标文件建立目录项,分配磁盘空间,复制源文件内容到新分配的磁盘空间。返回是否否图14 copy命令程序流程图显示“命令中参数太多或太少”是是否否否是命令格式正确吗?源文件存在吗?源文件已打开?命令只有1个参数?目标路径正确吗?是显示“源文件不存在。”显示“文件正在使用不能复制。”文件复制到当前目录,同名复制显示“路径名错误。”否是目标文件名正

38、确?显示“目标文件名错误。”是否目标文件名冲突?显示“目标文件重名错误。”目标文件与子目录同名?源文件同名复制到该子目录中源文件更名复制到目标目录中是否子目录有源文件同名文件?是否13. ren命令流程图命令形式:ren 新文件名。功能:文件改名,即将指定文件的名字改为“新文件名”。若原文件不存在,给出错误信息。若原文件存在,但正在使用,也不能改名,同样显示出错信息。应检查新文件名是否符合命名规则以及新文件名是否有重名冲突。ren命令的处理函数为RenComd(),其简单流程图如图15所示.开始返回是否否图15 ren命令程序流程图显示“命令中参数太多或太少”是是否否命令格式正确吗?改名文件存

39、在吗?文件已打开了吗?新文件名合法吗?是显示“要改名的文件不存在。”显示“文件正在使用不能改名。”在该文件的目录项中用新名字代替原名字显示“新文件名不合规则。”否是新文件名重名吗?显示“存在文件新文件重名。”14。 attrib命令流程图命令形式:attrib 文件名 文件属性.功能:显示、修改文件或目录属性。若命令中无“文件属性”参数,则显示指定文件的属性;若命令中有“文件属性”参数,则修改指定文件的属性。“文件属性的形式有“+r或+h或+s和“r或h或s”两种形式,前者为设置指定文件为“只读或“隐藏或“系统属性,后者为去掉指定文件的“只读”或“隐藏”或“系统”属性。各属性可组合使用且顺序不

40、限.例如:attrib user/boy +r +h上述命令的功能是设置当前目录下user子目录中的文件boy为只读、隐藏文件。又如attrib /usr/user/box h r -s上述命令的功能是取消根目录下usr子目录中user子目录中的box文件的“隐藏”、“只读、“系统”属性。当命令中指定的文件已打开或不存在,不能修改其属性,给出错误信息;当命令中提供的参数错误,也显示出错信息。【注】本程序没有考虑属性的相关性和制约性.例如,DOS操作系统中,设置一个文件的“系统”属性时,必须先将该文件的属性设置成“只读和“隐藏”后,才能设置它为“系统属性”,即设置属性有次序问题。本系统不受这些限制。attrib命令的处理函数为AttribComd(),其简单流程图如图16所示.开始返回是否否图16 attrib命令程序流程图显示“命令中参数太多或太少”是是否否命令格式正确吗?文件/目录存在吗?命令没有属性吗?命令指定的是文件?是显示“文件或目录不存在。”显示指定文件或目录的属性。按命令的属性给指定文件或目录设置属性否是该文件打开了吗?显示“文件正在使用,不能修改属性。”所给属性正确吗?否显示“命令中的属性参数错误。”是15。 undel命令程序流程图命令形式:undel 目录

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服