我有以下代碼:execvp()不接受用戶輸入
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;
它工作正常。有任何想法嗎?
是的,那是固定的。非常感謝! – me45 2013-02-14 04:33:49