- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程设计说明书
在Linux环境下模拟实现命令解释器
专业:
班级:
姓名:
学号:
班内序号:
程序概述
1. 命令解释器的源程序保存在服务器上的路径为:home / 1-31 / j j . c的目录文件中。可执行程序保存在服务器上的路径为:home / 1-31 / j 。
2. 该命令解释器所完成的功能如下:
输入pwd指令来查看目前所在的工作目录的绝对路径名称简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。一般开启终端后默认的“当前工作目录”是用户的“主文件夹”。dir指令显示目录,显示指定目录下或当前目录下的信息,包括文件名等等。
输入cd +目录名或路径指令改变当前文件路径,实现将当前用户的当前工作目录更改至 cd 命令中指定的目录或文件夹。如果未指定目标目录名(即只输入“cd”),则。
newdir +目录名指令创建的目录。
eldir+目录名指令删除一个指定的目录或文件夹,若删除不存在的目录或文件,则显示删除失败。
输入exit指令退出命令解释程序
概念原理
strcmp(str1,str2)函数就是比较参数中两个字符串str1 和 str2的大小(大小写敏感,即A != a),如果完全相等,返回0,如果str1 str2(按照字母顺序比较),返回-1,如果str1 str2,则返回1。hdir()是C语言中的一个系统调用函数功 能改变工作目录用 法: int chdir(const char *path)返回值:成功返回0 ,失败返回-1创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或文件名称。删除文件目录在可以除去该目录前,它必须为空,并且必须有它的父目录的写权限。getcwd()函数的功能是取当前工作目录getcwd()会将当前工作目录的绝对路径复制到参数buf所指的空间中,参数size为buf的空间大小用 法: char *getcwd(char *buf, int n);
perror ()用来将上一个函数发生错误的原因输出到标准错误#includestdio.h
#includestdlib.h
#includestring.h
#includeunistd.h
#includedirent.h
int main(void)
{ int s;
pid_t pid;
char t1[50]; //定义数组t1用来存放键盘输入的字符串
char t2[50];
while(1)
{ printf(@);
char com[100]; //定义数组com用来存放键盘输入的字符串
gets(com); //com[100]被gets()函数赋值为\0 char t1[50];
char t2[50];
int i=0,j=0,k=0;
int flag=0;
while(com[i]!=0x0dcom[i]!=0x0acom[i]!=\0) //0x0a表示回车,换行 {if(com[i]!= flag==0)
t1[j++]=com[i];
else
{ if(flag!=0)
t2[k++]=com[i];
flag=1;
} i++;
}
t1[j]=\0;
t2[k]=\0;
if(strcmp(t1,exit)==0) // 退出程序功能,运用strcmp()函数来进行t1与exit
{ 的比较,返回值等于0,2个字串匹配,执行退出
printf(exit program command\n); 指令
return 0;
}
else if(strcmp(t1,cd)==0) //功能:改变当前目录的路径,用strcmp()函数来
{ 比较t1与cd,等于0,执行if语句
if(chdir(t2
文档评论(0)