资源描述:
《合肥工业大学操作系统课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一.设计题目第31题:操作系统接口:兼容Unix/Linux命令接口。要求:1)为Windows操作系统建立一个兼容Unix命令的命令接口;2)实现命令包括ls,cat,cp,mv,md,rd,cd,sort,more,print,命令的内容与详细格式请查阅unix命令手册;3)设计命令的名称、参数等格式。4)可以字符形式接收命令,执行命令,然后显示命令执行结果;二.设计原理及算法描述UNIX命令:ls[选项]列出文件信息(默认为当前目录)ls无参显示一个目录中的文件和子目录ls-l每行仅显示一个目录或名称ls--help显示此帮
2、助信息并离开mkdir目录若目录不存在则创建目录mkdir--help显示此帮助信息并离开rmdir目录若目录没有数据则删除目录rmdir--help显示此帮助信息并离开cp来源文件目的文件将来源文件复制到目的文件cp--help显示此帮助信息并离开cat文件或:cat文件1>>文件2显示文件内容或连接两个文件,并将结果输出到显示屏上cat文件将文件的内容输出到显示屏上cat文件1>>文件2将文件1连接到文件2的结尾,并输出到显示屏上cat--help显示此帮助信息并离开more文件使文件能逐行(回车键)或逐页(空格键)显示并显示
3、当前文件所占总文件的百分比more--help显示此帮助信息并离开mv文件1文件2或:mv文件目录重命名或移动文件mv文件1文件2将文件1名字改为文件2的名字mv文件目录将指定文件移动到指定目录下mv--help显示此帮助信息并离开sort文件将文本文件内容加以排序sort--help显示此帮助信息并离开按照每个命令的功能编写一个实现函数。通过c++字符串操作从输入流获得指令以及参数,通过对指令以及参数的判别调用对应指令的函数,实现对windows内文件的各项操作。三.开发环境硬件环境:个人PC机软件环境:MicrosoftWin
4、dowsXPMicrosoftVisualC++6.0四.重要算法和设计思路描述命令以及参数的获取:由于命令加参数最多能有四部分,所以申请4个字符串数组。并且将首地址都初始化为NULL,在后面的函数中用作判断输入参数的个数。根据输入流中的空格来分割命令和参数以及参数和参数。每检测到一个空格,即将前面的输入字符加上字符串结束符一起存入申请到的字符串数组中。命令以及参数的判断:strcmp。参数个数的判断:观察后三个字符串数组首地址是否为NULL。利用以下一些API函数实现unix命令要求实现的功能,对windows里的文件进行操作。
5、BOOLWINAPISetCurrentDirectory(__inLPCTSTRlpPathName); 切换当前进程的当前工作目录。HANDLEFindFirstFile(LPCTSTRlpFileName,//filename LPWIN32_FIND_DATAlpFindFileData//databuffer );该函数到一个文件夹(包括子文件夹)去搜索指定文件如果要使用附加属性去搜索文件的话可以使用FindFirstFileEx函数DWORDGetCurrentDirectory( DWORDnBufferLen
6、gth,//sizeofdirectorybuffer LPTSTRlpBuffer//directorybuffer);获取当前进程的当前目录BOOLCreateDirectory(LPCTSTRlpPathName,LPSECURITY_ATTRIBUTESlpSecurityAttributes);创建一个新目录HANDLECreateFile( LPCTSTRlpFileName,//指向文件名的指针 DWORDdwDesiredAccess,//访问模式(写/读) DWORDdwShareMode,//共享模式
7、 LPSECURITY_ATTRIBUTESlpSecurityAttributes,//指向安全属性的指针 DWORDdwCreationDisposition,//如何创建 DWORDdwFlagsAndAttributes,//文件属性 HANDLEhTemplateFile//用于复制文件句柄 );这是一个全功能的例程,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台缓冲区五.程序实现——数据结构doc.h中用#define宏定义了各命令的帮助文档。function.h中用API函数和一些简单的字符串操作实现
8、了每个命令要求的功能。cmd.cpp中定义了获取命令及参数的方法,用if…else…结构对命令及参数进行判断并调用对应的函数。六.程序实现——程序清单见程序包七.课程设计总结经过一个星期的课程设计,经历的困难一语难尽。整个课程设计期间我们失落过,也