-2
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
int main() {
pid_t pid;
int status = -1;
if ((pid = fork()) != 0) {
printf("Father process wait child PID=%d\n", pid);
wait(&status);
printf("Child finish with status: %d\n",WEXITSTATUS(status));
exit(0);
}
else {
printf("Child process running...\n");
execl("/bin/ls","ls", "-la", NULL);
printf("Child ending...\n");
}
}
編譯此代碼時else的最後一行不打印,我不知道爲什麼。爲什麼不打印子進程的最後一行?
您是否真的閱讀過'execl'的手冊頁?它告訴你所有你需要知道的 - 它不會成功。 – kaylum