- 论坛徽章:
- 0
|
父进程fork一个子进城后,子进程执行execl的操作,执行完后,子进程自动返回给父进程信号,这个返回是execl系统调用自动的吗?
看下面的程序:
#include <sys/types.h>;
#include <sys/wait.h>;
#include "ourhdr.h"
char *env_init[] = { "USER=unknown", " ATH=/tmp", NULL };
int
main(void)
{
pid_t pid;
if ( (pid = fork()) < 0)
err_sys("fork error" ;
else if (pid == 0) { /* specify pathname, specify environment */
if (execle("/usr/home/mike/study/C/APUE/echoarg",
"echoarg", "myarg1", "MY ARG2", (char *) 0,
env_init) < 0)
err_sys("execle error" ;
printf("hello child is over\n" ; }
if (waitpid(pid, NULL, 0) < 0)
err_sys("wait error" ;
if ( (pid = fork()) < 0)
err_sys("fork error" ;
else if (pid == 0) { /* specify filename, inherit environment */
if (execlp("echoarg",
"echoarg", "only 1 arg", (char *) 0) < 0)
err_sys("execlp error" ;
}
exit(0);
}
红色的那句话,会不会执行?子进程是怎么返回的呢? |
|