linux----8--9--父进程等待子进程的退出

本文探讨了在Linux环境下,父进程如何等待子进程的退出,包括僵尸进程和孤儿进程的概念。wait()函数用于父进程收集子进程的退出状态,而waitpid()则允许父进程不等待子进程。孤儿进程会被init进程收养。
摘要由CSDN通过智能技术生成

我们创建子进程的原因是什么?是让子进程帮助我们来“干活”,比如在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
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追着希望跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值