我有以下代码:
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”或“日期”之类的内容时,它都会告诉我没有这样的文件或目录。当我在代码中写道:
f[0] = "ls";
f[1] = "-l";
f[2] = NULL;
它工作得很好。有任何想法吗?