进程退出、僵尸进程、孤儿进程

1、进程退出

atexit函数称为终止处理程序注册程序
在Linux下 man atexit 就可以查看atexit的用法。
这里写图片描述

函数的用法和返回值int atexit(void (*function)(void));
注册函数fun1(),用atexit调用,调用了以后先不执行fun1,而是先记住,进程退出后,再运行fun1的这个函数。
例如:
这里写图片描述
结果:
这里写图片描述
如果注册三个函数,那么注册顺序和进程退出时的退出顺序一样么?
这里写图片描述
结果显示:
这里写图片描述
综上:atexit函数的注册顺序和进程退出时的退出顺序是相反的,先注册的后退出,后注册的先退出。


2、僵尸进程

僵尸进程:一个子进程在其父进程没有调用wait()或waitpid()的情况下退出。这个子进程就 是僵尸进程。如果其父进程还存在而一直不调wait,则该僵尸进程将无法回收,等到其父进程退出后该进程将被init回收。
这里写图片描述
结果:
这里写图片描述


3、孤儿进程

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
这里写图片描述
结果:
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值