资源简介
在linux中实现一个简单的命令解释程序,功能要求:
1)同时支持内部命令和外部命令,内部命令支持两个(cd、exit)
2)支持后台命令
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#define MAX_CMD_LEN 256
void printCwd(){
long size;
char *buf;
char *cwd;
size=pathconf(“.“_PC_PATH_MAX);
if((buf=(char *)malloc((size_t)size))!=NULL)
cwd=getcwd(buf(size_t)size);
printf(“%s$“cwd);
}
void getcmd(char* cmd){
while((cmd[0]=getchar())==‘ ‘);
int i=0;
do{
i++;
cmd[i]=getchar();
}while(cmd[i]!=‘\n‘&&i<=MAX_CMD_LEN);
if(i>MAX_CMD_LEN){
perror(“命令行的长度超限“);
printCwd();
}
cmd[i]=‘\0‘;
}
int main(){
char cmd[MAX_CMD_LEN+1];
printf(“enter sehll....\n“);
while(1){
printCwd();
memset(cmd0sizeof(cmd));
getcmd(cmd);
if(strncmp(cmd“exit“4)==0){
printf(“shell exit .....\n“);
break;
}if(strncmp(cmd“cd“2)==0){
// printf(“ do cd \n“);
评论
共有 条评论