linux 命令解释器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

相关文档
最新文档