版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、苏州科技学院 电子信息实验中心实验报告课程操作系统学名闫自立班级 软件1311专业计算机科学与技术指导教师 张妮学年 / 学期2015 2016学年第一学期5实验一 命令解释程序设计实验项目性质:设计性计划学时:2实 验 环 境:Redhat Linux 实验日期:2015 年10月16日一、实验目的1、通过本实验熟悉UNIX/LINUX操作系统及C语言。2、熟悉系统调用的编程方法。二、实验内容利用C语言编写一个微型命令解释程序minishell.c,该程序可接收并解释以下命令:(1) dir列出当前目录(2) copfile1file2拷贝文件(3)erafilen
2、ame删除文件(4) disp string显示字符串(5)end结束,退出要求:(1)检查命令的合法性,如果有错误,显示出错信息,等待重新输入;(2)命令前后有空格示为合法命令。三、设计原理(或方案)及相关算法四、结果分析(可根据需要附加页)1. dir命令2. cop命令3.era命令4. disp命令5. end命令五、源程序(可根据需要附加页)#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;int
3、main()char cmdl80;char lin80;/linux最终命令char *scwt = "dir", "cop", "era", "disp", "end" ;static int cmdnum = 5;/可用的命令数char cmd80; char *parameter;unsigned int j,n;while (true)cout << "notice:command must have space in the end!n"printf(
4、"Please input command: ");fgets(cmdl,30,stdin);/从标准输入读取数据 包括键盘n = strcspn(cmdl, " ");/取命令命令部分if (n>0 | strlen(cmdl)>0)strncpy(cmd, cmdl, n);/将命令部分拷贝的cmd字符数组cmdn = '0'for (j = 0; j<cmdnum; j+)if (strcmp(cmd, scwtj) = 0)break;if (j = 0)/是dir命令?cout << "d
5、ir最终解释后的命令是:" <<"ls -a" << endl;system("ls -a");else if (j = 1)/copparameter=strstr(cmdl, " ");char *tem = "cp "unsigned int i = 0;unsigned int j1 = 0;for (; i < strlen(tem); i+)lini = *(tem + i);for (; i < strlen(tem) + strlen(parameter
6、); i+)lini = *(parameter + j1);j1+;linstrlen(tem) + strlen(parameter) = '0'cout<<"cop最终解释后的命令是:" <<lin<<endl;system(lin);continue;else if (j = 2)/era 删除 parameter = strstr(cmdl, " ");char *tem = "rm -f "unsigned int i = 0;unsigned int j1 = 0;fo
7、r (; i < strlen(tem); i+)lini = *(tem + i);for (; i < strlen(tem) + strlen(parameter); i+)lini = *(parameter + j1);j1+;linstrlen(tem) + strlen(parameter) = '0'cout << "era最终解释后的命令是:" << lin << endl;system(lin);continue;else if (j = 3)/disp 显示字符串 echoparamete
8、r = strstr(cmdl, " ");char *tem = "echo "unsigned int i = 0;unsigned int j1 = 0;for (; i < strlen(tem); i+)lini = *(tem + i);for (; i < strlen(tem) + strlen(parameter); i+)lini = *(parameter + j1);j1+;linstrlen(tem) + strlen(parameter) = '0'cout << "disp最终解释后的命令是:" << lin << endl;system(lin);continue;else if (j = 4)/end退出cout << "end
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年化妆品展会参展协议
- 2024年国际旅游业务合作经营合同
- 2024年居家植物租摆合同
- 2024年幼儿教师个人隐私保密协议
- (2024版)健身房会员供餐服务协议合同
- 2024年企业品牌战略咨询与实施合同
- 2024年城市轨道交通信号系统升级与维护合同
- 2024年展览活动中心承包合同
- 2024年塑胶运动场工程设计与施工合同
- 2024年企业间技术研发与合作合同
- 危废焚烧处理工艺基础和运营试题与答案
- 防灾减灾日救援深蓝色简约PPT模板
- SYB游戏模块课件
- 拔牙术拔牙的禁忌症与适应症ppt课件
- FSSC22000 食品安全管理体系管理手册和全套程序文件
- 和孩子一起成长-家长学校讲座-PPT课件
- 小学体育 跳绳(课堂PPT)
- 变电站电气工程质量监理旁站点及旁站监理记录
- 中国结之红绳手链的编结大全
- 国家开放大学《金融基础知识》形成性考核1-4参考答案
- 新产品试产及小批程序
评论
0/150
提交评论