|
我刚开始接触linux,操作系统试验要求我们做一个小的命令解释器。
我想看看linux的命令解释器,如bash的源代码,学习一下。
有什么好的资料也请大家给推荐一下。
另外,我编了一个:每次运行的时候总有segmentation fault的错误。
请帮帮我看一下,错在哪里??
#include <string.h>
const char op1[]="dir";
const char op2[]="dis";
const char op3[]="cop";
const char op4[]="era";
const char op5[]="en";
char str[];
int main()
{
do{
char sp1[]="ls -l";
char sp2[]="echo";
char sp3[]="cp";
char sp4[]="rm -f";
gets(str);
if(*strstr(str,op1)!='\0')
system(sp1);
else if(*strstr(str,op2)!='\0')
{
strcat(sp2,strstr(str,op2)+3);
system(sp2);
}
else if(*strstr(str,op3)!='\0')
{
strcat(sp3,strstr(str,op3)+3);
system(sp3);
}
else if(*strstr(str,op4)!='\0')
{
strcat(sp4,strstr(str,op4)+3);
system(sp4);
}
else if(*strstr(str,op5)!='\0')
break;
else printf("Unknown Command!!");
}//while
while(1);
return 1;
} |
|