C语言模拟shell命令行解释器
北京联合大学《操作系统课程设计》实验一:命令行解释程序 学校:信息学院 专业:计算机科学与技术 课程:操作系统 班级:1 1 0 3 B 姓名:付碧贵 学号:2018年7月10日 1所用数据结构说明字符数组:本程序中包含的字符数组有: [20]:在Ccopy()函数中,存储源文件路径和名称的字符数组。 [20]:在Ccopy()函数中,一个字符数组,存储目标文件的路径和名称。 [20]:字符数组,用于保存Cmv()函数中的源文件路径和名称。 [20]:字符数组,用于保存Cmv()函数中目标文件的路径和名称。 Cho2[6]:访问用户输入的指令,并将其作为分支判定条件之一。 File[20]:()函数中使用的字符数组,存放要删除的文件的路径和名称。 Word[100]:在Cdis()中存储用户想要回显的字符串。 2、源程序列表、注释和流程图 流程图(二)源程序和注释 ####### flag=1;char ch[8];//存储文件内容的中间变量FILE *fp读; FILE *fp1;char[20];/*复制文件要存放的原文件名*/char[20];/*复制文件要存放的目标文件名*/ char[20];/ *用于存储移动的文件源文件名*/char [20];/*用于存储移动的文件的目标文件名*/(char *,char *)/*文件复制功能,可以复制文本和图片*/ { if((fp =fopen(,"rb"))==NULL||(fp1=fopen(,"wb"))==NULL)/*源文件或目标文件失败则无法复制打开*/ {("无法打开文件!\n");exit(0); }else { fread(ch,1,8,fp);//一次读取八个字节的字节流,存入ch字符数组中 while (!feof(fp))//当文件结尾时未读取,继续读取 {(ch,1,8,fp1);//写入目标文件 fread(ch,1,8,fp);//继续读取 }(fp);//关闭指针并释放内存(fp1); }}(){ flag=0;//将循环条件flag=1改为0,结束循环,结束程序}(){/ *目录显示功能,除了调用Cmd之外,没有更好的解决办法了,这是一个这个程序可惜了。*/("cmd.exe /b dir");}void Ccopy()//文件复制主函数{scanf("%s%s",&,&);//获取源码和目标文件名 (,);//向复制函数传递参数} void ()//删除文件函数 {char File[20];//文件名存储 scanf("%s",&File);//获取文件名 if((File)==0)//删除成功返回0{(" %s !\n",File);}else{("! ");}}(){char Word[100] ;//存储用户输入的字符串();//提取第一个不必要的空格字符 gets(Word);//获取用户的字符串内容("--------E---C- --H---O-------------\n");puts(Word);//显示用户字符串内容}void Cmv()//移动或重命名文件 {scanf ("%s%s",&,&);//用于获取用户输入的两个文件名 (,);}int main(){ //定义判断字符 char cdir1[]="Cdir" ; 字符 cdir2[]="cdi