c语言 - 为什么子进程的最后一行不打印?


#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=%dn", pid);
       wait(&status);
       printf("Child finish with status: %dn",WEXITSTATUS(status));
       exit(0);
    }
    else {
       printf("Child process running...n");
       execl("/bin/ls","ls", "-la", NULL);
       printf("Child ending...n");
    }
}

当编译这段代码时,else的最后一行不打印,我不知道为什么。

http://linux.die.net/man/3/execl

exec()函数族用新的进程映像替换当前的进程映像。…

exec()函数只在发生错误时返回。返回值为-1,errno表示错误。

最新更新