命令解釋我必須寫在C的命令解釋它必須:實現用C
- 手柄命令選項和參數
- 支持命令,而無需選項和參數
- 允許重定向一個命令到另一個(例如:
ls -a | wc
)以3最大重定向
我們也可以假設一個固定的最大的參數(比如MAXARG
)。
此刻我寫了這段代碼,但我不知道爲什麼有些命令不起作用(例如cd
)。請幫幫我。
#include <stdio.h>
#include <string.h>
#include <unistd.h>
void parse(char *line, char **argv)
{
while (*line != '\0') {
while (*line == ' ' || *line == '\t' || *line == '\n' || *line=='|')
*line++ = '\0';
*argv++ = line;
while (*line != '\0' && *line != ' ' &&
*line != '\t' && *line != '\n')
line++;
}
*argv = '\0';
}
int main(int argc,char *argv[])
{
int child_pid;
char * arg[10];
int child_status;
char str[10];
do
{
printf(">> ");
gets(str);
parse(str,arg);
if(!strcmp(arg[0],"end"))
{
break;
}
child_pid = fork();
if(child_pid == 0)
{
execvp(*arg,arg);
printf("Unknown command\n");
}
else
{
wait(&child_status);
printf("koniec\n");
}
}
while(1==1);
return 0;
}
*我必須在C編寫命令解釋程序*我以爲皮諾切特已經死了 –