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)--》得到 导致子进程异常终止的信号编号。