#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");
}
}
编译此代码时,其他的最后一行不会打印,我不知道原因。
答案 0 :(得分:3)
http://linux.die.net/man/3/execl
exec()系列函数用新的过程映像替换当前过程映像。 ....
返回值
exec()函数仅在发生错误时返回。回报 value为-1,并设置errno以指示错误。