- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计实验报告
PAGE \* MERGEFORMAT 14
实验六 简单shell
班级: 学号: 1120131743 姓名: 谈兆年
学号: 1120131767 姓名: 徐欣廷
学号: 1120131746 姓名: 杨知水
学号: 1120131766 姓名: 杜田野
一、实验目的
通过实现一个简单的shell命令解释器,加深对Windows系统调用的理解,同时了解管道命令的设计实现机制。
二、实验内容
在Windows平台上实现Linux的某些命令:
展开指定目录:myls [dir]
文件查看和连接:mycat [-n] [file1 file2……]
显示文档的开头:myhead number filename
排序:mysort [file1 file2 ……]
统计可执行文件执行时间:mytime program1.exe
复制文件:mycp a b
自定义出错提示命令:mysl
分别对应于Linux系统中的ls cat head sort time cp sl命令,在具体设计实现的时候用法做了简化。其中,mycat、myhead和mysort为三条管道命令,例如:
mysort file1.txt file2.txt | myhead 6 | mycat -n
三、程序设计与实现
1、程序中使用的结构体
(1) 处理输入命令字符串的自定义结构体CMD,定义如下
struct CMD{
int cmdposi[10];//记录每条管道命令在命令字符串中是第几个字符串
int lastcmdposi; //最后一条命令是第几条命令
int subcmdparameter[10];//每条管道命令所带的参数个数
char* subcmd[10][10];//记录命令行中的每一个字符串
}cmd;
对于输入命令:mysort file1.txt file2.txt | myhead 6 | mycat –n
字符串的位置: 0 1 2 3 4 5 6 7 8
cmdposi[]: cmdposi[0]=0 cmdposi[1]=4 cmdposi[2]=7
subcmd[0]: mysort file1.txt file2.txt
subcmd[][] subcmd[1]: myhead 6
subcmd[2]: mycat –n
(2) 创建进程时,PROCESS_INFORMATION结构返回有关新进程及其 HYPERLINK /view/536183.htm \t /_blank 主线程的信息。其结构定义如下:
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess; //新创建进程的句柄
HANDLE hThread; //新创建进程的主线程的句柄
DWORD ?dwProcessId; //新创建进程的标识
DWORD ?dwThreadId; //新创建进程的主线程的标识
} PROCESS_INFORMATION, *LPPROCESS_INFORMATION;
获取系统时间时,使用到SYSTEMTIME结构体,其定义如下:
typedef struct _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结构体中。
typedef struct _WIN32_FIND_DATA {
DWORD ???dwFileAttributes;//文件属性
FILETIME ftCreationTime;//文件创建时间
FILETIME ftLastAccessTime;//文件最后一次访问时间
FILETIME ftLastWriteTime;//文件最后一次修改时间
DWORD ???nFileSizeHigh;//文件长度高32位
DWORD ??
您可能关注的文档
最近下载
- 压力检测及仪表.ppt
- DGTJ08-202-2020钻孔灌注桩施工规程 上海市.pptx VIP
- 光伏发电站场内及并网安全技术白皮书.pdf
- API SPEC 4F 钻井和修井井架、底座规范1995.doc VIP
- 2023年09月浙江温州市平阳县部分事业单位面向高校毕业生退役士兵公开招聘6人笔试历年难易错点考题荟萃附带答案详解_1.docx VIP
- 《中华人民共和国安全生产法》培训解读课件.pptx VIP
- 《中华人民共和国安全生产法》解读与培训.pptx VIP
- 电子商务专业课程体系构建与实践教学方案.docx VIP
- 《中华人民共和国矿山安全法实施条例》深度解读课件.pptx VIP
- 【温州】2024年浙江温州平阳县部分事业单位面向高校毕业生退役士兵招聘工作人员6人笔试历年典型考题及考点剖析附带答案详解.docx VIP
文档评论(0)