码迷,mamicode.com
首页 > 系统相关 > 详细

进程环境详解(二)---进程终止和 atexit 函数详解

时间:2016-10-01 14:53:14      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

进程终止可以分为 进程正常终止 和 进程异常终止 。
  • 进程正常终止有以下几种情况:
    • 在 main 函数返回
    • 调用 exit 函数
    • 调用 _exit 或者 _Exit 函数
    • 最后一个线程从启动代码中返回
    • 最后一个线程调用 pthread_exit
  • 进程异常终止有以下几种情况:
    • 调用 abort函数
    • 进程收到信号终止
    • 最后一个线程对取消请求作出响应
========================================================
exit 函数 和 _exit / _Exit 函数的区别就是:
  调用 exit 函数后并不会马上进入内核态,而是会先进行一些终止处理程序(使用atexit函数注册的函数),还会强制刷新所有的用户缓冲区等等。而_exit 和 _Exit 函数则是会立马进入到内核态中去执行内核处理,对用户缓冲区不予处理。在 exit 函数中也是封装了 _exit 或者 _Exit 函数。
  在 main 函数中使用 return 关键字和 调用 exit 函数是一模一样的。
========================================================
  atexit 函数的作用是用来注册函数,被注册的函数将会在调用 exit 函数或者在 main 函数中使用return关键字的时候会被执行。执行的顺序和调用的顺序是相反的。
函数原型:
技术分享
技术分享
函数参数:
  • function:函数指针
返回值:
  • 调用成功时返回 0
  • 调用失败时返回 非 0

进程环境详解(二)---进程终止和 atexit 函数详解

标签:

原文地址:http://www.cnblogs.com/frank-yxs/p/5925769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!