我正在嘗試創建ls命令。首先,如果我輸入「ls」,則代碼不起作用,它只在進入完整路徑時才起作用。其次,它不在exevcp()之後循環。爲什麼? 謝謝。在c中創建ls命令
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
int main(void){
char *line;
char *args[32];
memset(args, 0, sizeof(args));
while (1){
line = (char*)malloc(1024);
printf("$ ");
fgets(line,1024,stdin);
args[0] = strtok(line, " ");
args[1] = strtok(NULL, " ");
execvp(args[0], args);
perror("execvp");
}
}
'它不在exevcp()之後循環。爲什麼? - exec()系列函數用當前過程映像替換當前過程映像。因此,在'execvp()'之後,您的初始過程不再存在。 –