linux 命令解释器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统课程设计说明书
命令解释器
学院计算机工程学院
专业班级软件工程2班
学生姓名庄珂
学号201038898016
一、程序概述
1.1完成的任务
(1)定义mydir具有dir的功能//改变当前目录;
(2)定义mycd具有cd的功能//列出目录及文件;
(3)定义newdir具有mkdir的功能//新建目录;
(4)定义deldir具有rmdir的功能//删除目录;
(5)定义myclear具有clear的功能//清屏;
1.2解决的问题
二、概念原理
2.1基本概念
2.2基本原理
三、总体设计
3.1实现方法
3.2技术路线
四、详细设计
#include
#include
#include
#include
#include
#include
#include
#include
char ZHILING[100];
char param_list[20][256];
int Read(void)
{
char c;
int i=0;
while (scanf("%c",&c)!=EOF && c!='\n' && i<100) {
ZHILING[i]=c;
i++;
}
ZHILING[i]=0;
return 0;
}
int Parse()
{
unsigned int i=0,j=0,n=0;
int blank_flag=1;
for (i=0;i { if (ZHILING[i]==' ' || ZHILING[i]=='\t') { if (blank_flag==0) { param_list[n][j]=0; n++; j=0; blank_flag=1; } } else { param_list[n][j]=ZHILING[i]; j++; blank_flag=0; } } if (blank_flag==1) param_list[n][0]=0; else { param_list[n][j]=0; n++; param_list[n][0]=0; } return 1; } int CD() { if (strcmp("",param_list[1])==0) return -1; if (chdir(param_list[1])==-1) { printf("error\n"); return -1; } return 0; } int NEWDIR() { if (strcmp("",param_list[1])==0) { printf("error\n"); return -1; } if (mkdir(param_list[1],~0)==-1) { printf("error\n"); return -1; } else printf("success\n"); return 0; } int DELDIR() { if (strcmp("",param_list[1])==0) { printf("error\n"); return -1; } if (rmdir(param_list[1])==-1) { printf("error\n"); return -1; } else printf("success\n"); return 0; } int CDir() { DIR* dirp; struct dirent * ent; if (strcmp("",param_list[1])==0) dirp=opendir("."); else dirp=opendir(param_list[1]); if (dirp==NULL) { printf("error\n"); return -1; } while ((ent=readdir(dirp))!=NULL) { if (ent->d_name[0]!='.') printf("%s\t",ent->d_name); } printf("\n"); closedir(dirp); return 0; }