「echo」コマンドを持つシェルを書いています。たとえば、ユーザーが「echo hello world」と入力すると、シェルは「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) が印刷されている理由がわかりません。何か案は?
お時間をいただきありがとうございます。