次のコードがあります。
int main(void) {
char in[100];
printf("> ");
fgets(in, sizeof(in), stdin);
int pid;
char *f[100];
char *v;
int i = 1;
v = strtok(in, " ");
f[0] = v;
while (v = strtok(NULL, " ")){
f[i] = v;
i++;
}
f[i] = NULL;
execvp(f[0], f);
perror("FAILED");
exit(1);
}
何らかの理由で、「ls -l」や「date」などを入力すると、そのようなファイルやディレクトリがないと表示されます。私がコードに書いたとき:
f[0] = "ls";
f[1] = "-l";
f[2] = NULL;
それはうまくいきました。何か案は?