gdb调试:

            设置父进程调试路径:set follow-fork-mode parent

            设置子进程调试路径:set follow-fork-mode child

exec函数族:

        使用进程执行某一程序。成功无返回值,失败返回-1

        int execlp(const char *file,const char *arg, ...);    借助PATH环境变量找寻待执行程序

  • 参数1:    程序名

  • 参数1:    程序名

  • 参数1:    程序名

  • ........:        argv

  • 哨兵:      NULL

         int execl(const char *file,const char *arg, ...);     自己指定待执行程序路径。

孤儿进程:

        父进程先于子进程终止,子进程沦为“孤儿进程”,会被init进程领养。

僵尸进程:

        子进程终止,父进程尚未对子进程进行回收,在此期间,子进程为“僵尸进程”。

 

wait函数:            回收子进程退出资源

  • 函数作用1:  阻塞等待子进程退出

  • 函数作用2:  清理子进程残留在内核的pcb资源

  • 函数作用3:   通过传出参数,得到子进程结束状态

获取子进程正常终止:

        WIFEXITED(status)--》为真--》调用WEXITSTATUS(status)--》得到子进程 退出值

获取导致子进程异常终止信号:

        WIFSIGNALED(status)---》为真---》调用 WTERMSIC(status)--》得到 导致子进程异常终止的信号编号。