#include <sys/types.h>
#include <sys/wait.h>
pid_t wait(int *status);
pid_t waitpid(pid_t pid,int *status,int options);
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait(int *status);
pid_t waitpid(pid_t pid,int *status,int options);
- status 如果等于=NULL,则不关心子进程退出状态
在子进程执行完后,通过 exit(退出码);退出
在父进程中用 wait ();获取 exit()中的退出码,表示子进程已结束(子进程exit返回的值放在status指向的地址中)
使用wait时,如果所有子进程都在运行,则阻塞 - waitpid(pid,退出码,WNOHANG);
pid用于获取子进程id号
WNOHANG 为options常亮,可控制子进程执行时父进程不阻塞
在父进程中打印子进程的pid 用到宏解析 EXITSTATUS(status);
子进程获取父进程id:getppid();
孤儿进程:子进程还没退出,父进程就已经结束生命,此时的子进程为孤儿进程
Linux避免系统存在太多孤儿进程,init 进程收留孤儿进程,变成孤儿进程的父进程