我们创建子进程的原因是什么?是让子进程帮助我们来“干活”,比如在fork之后,我们创建了一个子进程,它会执行一段我们想让它执行的代码,而不会影响父进程
介绍一个概念,
僵尸进程:如果子进程先于父进程退出, 同时父进程又没有调用wait/waitpid来收集exit的状态,则该子进程将成为僵尸进程。通过ps - aux|grep a.out命令,我们可以看到该进程的状态为Z(表示僵死)。
总之,父进程还收集子进程的退出状态,当子进程结束后,要返回一个反馈给父进程。让父进程知道这个子进程结束任务了(正常退出)
通过在父进程调用wait()来收集子进程的退出状态,这时是子进程先打,直到结束,才父进程打(等待子进程结束),此时子进程为s 而不是z(僵死进程)
如代码如下
int main(){
pid_t pyd;
int data;
int cnd;
pyd =fork();
// printf("cnd data is: %d\n",cnd);
if(pyd>0){
wai