我正在编写一个带有“echo”命令的外壳。例如,如果用户输入“echo hello world”,shell 会打印出“hello world”。
我的代码如下。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int MAX_INPUT_SIZE = 200;
char input[MAX_INPUT_SIZE];
char *command;
printf("shell> ");
fgets(input, MAX_INPUT_SIZE, stdin);
//find first word
char *space;
space = strtok(input, " ");
command = space;
// printf("command: %s\n",command);
//echo command
if (strncmp(command, "echo", MAX_INPUT_SIZE) == 0) {
while (space != NULL) {
space = strtok(NULL, " ");
printf("%s ", space);
}
}
return (EXIT_SUCCESS);
}
当我运行这个时,输入
echo hello world
外壳打印出来
hello world
(null)
我对为什么打印 (null) 感到困惑。有任何想法吗?
在此先感谢您的时间!