操作系统课程作业实现shell.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程作业实现shell

实验六简单shell班级 学号:1120131743 姓名: 谈兆年学号:1120131767 姓名: 徐欣廷学号:1120131746 姓名:杨知水学号:1120131766 姓名:杜田野 一、实验目的通过实现一个简单的shell命令解释器,加深对Windows系统调用的理解,同时了解管道命令的设计实现机制。二、实验内容在Windows平台上实现Linux的某些命令:展开指定目录:myls [dir]文件查看和连接:mycat [-n] [file1 file2……]显示文档的开头:myhead number filename排序:mysort [file1 file2 ……]统计可执行文件执行时间:mytimeprogram1.exe复制文件:mycp a b自定义出错提示命令:mysl分别对应于Linux系统中的ls cat head sort timecpsl命令,在具体设计实现的时候用法做了简化。其中,mycat、myhead和mysort为三条管道命令,例如:mysort file1.txt file2.txt | myhead 6 | mycat -n三、程序设计与实现1、程序中使用的结构体(1)处理输入命令字符串的自定义结构体CMD,定义如下struct CMD{ intcmdposi[10];//记录每条管道命令在命令字符串中是第几个字符串intlastcmdposi;//最后一条命令是第几条命令intsubcmdparameter[10];//每条管道命令所带的参数个数char* subcmd[10][10];//记录命令行中的每一个字符串}cmd;对于输入命令:mysort file1.txt file2.txt | myhead 6 | mycat–n字符串的位置: 0 1 2 3 4 5 6 7 8cmdposi[]:cmdposi[0]=0 cmdposi[1]=4 cmdposi[2]=7subcmd[0]: mysort file1.txt file2.txtsubcmd[][]subcmd[1]: myhead 6subcmd[2]: mycat–n(2)创建进程时,PROCESS_INFORMATION结构返回有关新进程及其主线程的信息。其结构定义如下:typedefstruct _PROCESS_INFORMATION { HANDLE hProcess;//新创建进程的句柄 HANDLE hThread;//新创建进程的主线程的句柄 DWORD ?dwProcessId;//新创建进程的标识 DWORD ?dwThreadId;//新创建进程的主线程的标识} PROCESS_INFORMATION, *LPPROCESS_INFORMATION;获取系统时间时,使用到SYSTEMTIME结构体,其定义如下:typedefstruct _SYSTEMTIME {????WORD wYear;//年????WORD wMonth;//月????WORD wDayOfWeek;//星期????WORD wDay;//天????WORD wHour;//小时????WORD wMinute;//分钟????WORD wSecond;//秒????WORD wMilliseconds;//毫秒} SYSTEMTIME, *PSYSTEMTIME;(4) 在调用函数FindFirstFile、FindNextFile时,将找到的文件的信息存储在win32_FIND_DATA结构体中。typedefstruct _WIN32_FIND_DATA { DWORD ???dwFileAttributes;//文件属性 FILETIME ftCreationTime;//文件创建时间 FILETIME ftLastAccessTime;//文件最后一次访问时间 FILETIME ftLastWriteTime;//文件最后一次修改时间 DWORD ???nFileSizeHigh;//文件长度高32位 DWORD ???nFileSizeLow;//文件长度低32位 DWORD ???dwReserved0;//系统保留 DWORD ???dwReserved1;//系统保留 TCHAR ???cFileName[MAX_PATH];//长文件名 TCHAR ???cAlternateFileName[14];//8.3格式文件名} WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档