用c语言编程模拟shell功能,c语言模拟shell命令行解释程序.docx

c语言模拟shell命令行解释程序

北京联合大学《操作系统课程设计》实验一:命令行解释程序学 院: 信息学院 专 业: 计算机科学与技术 课 程:操作系统 班 级: 1 1 0 3 B 姓 名: 傅笔贵学 号: 20090803053022014年 7 月 10 日一.采用的数据结构说明字符数组:本程序中包含的字符数组有:filename1[20]:在Ccopy()函数中,存储源文件路径和名字的字符数组。filename2[20]:在Ccopy()函数中,存储目标文件路径和名字的字符数组。oldname[20]:在Cmv()函数中用来保存源文件路径和名字的字符数组。newname[20]:在Cmv()函数中用来保存目标文件路径和名字的字符数组。Cho2[6]:存取用户输入的指令,并用来作为Switch分支的判定条件之一。File[20]:Cerase()函数中用来存放要删除的文件的路径和名字的字符数组。Word[100]:在Cdis()中存放用户要回显的字符串。二.源程序清单、注释和流程图流程图(2)源程序和注释#include#include#include#include#include#include#includeint flag=1;char ch[8];//存储文件读取内容的中间变量 FILE *fp;FILE *fp1;char filename1[20];/*复制文件候存放的原文件名*/char filename2[20];/*复制文件候存放的目标文件名*/ char oldname[20];/*用来存放移动文件的源文件名*/char newname[20];/*用来存放移动文件的目标文件名*/voidstart_copy(char *filename1,char *filename2)/*文件复制函数,可以实现文本和图片的复制*/{ if((fp=fopen(filename1,"rb"))==NULL||(fp1=fopen(filename2,"wb"))==NULL)/*源文件或目标文件打开失败则无法进行复制*/ {printf("can't open the source file!\n");exit(0); }else { fread(ch,1,8,fp);//一次读取八个字节的字节流,存放到ch字符数组里while (!feof(fp))//没读取到文件尾部时,持续读取 {fwrite(ch,1,8,fp1);//写到目标文件里fread(ch,1,8,fp);//继续读取 }fclose(fp);//关闭指针,释放内存fclose(fp1); }}voidCend(){ flag=0;//将循环条件flag=1变为0来结束循环,结束程序}voidCdir(){/*目录显示函数,除了调用Cmd没有更好的 解决办法,是本程序的遗憾.*/system("cmd.exe /b dir");}void Ccopy()//文件复制主函数{scanf("%s%s",&filename1,&filename2);//获取源文件和目标文件名start_copy(filename1,filename2);//传参到复制函数}void Cerase()//删除文件函数{char File[20];//文件名存储scanf("%s",&File);//获得文件名if(remove(File)==0)//删除成功remove返回0{printf("Remove %s Successfully!\n",File);}else{perror("Failed!");}}voidCdis(){char Word[100];//存放用户输入的字符串getchar();//吸取第一个不必要的空格字符gets(Word);//获得用户的字符串内容printf("---------E---C---H---O-------------\n");puts(Word);//显示用户的字符串内容}void Cmv()//移动或重命名文件函数{scanf("%s%s",&oldname,&newname);//用来获取用户输入的两个文件名rename(oldname,newname);}int main(){ //定义判定字符char cdir1[]="Cdir";char cdir2[]="cdi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值