linux/unix关于程序的退出函数

14 篇文章 0 订阅

   程序退出函数

c程序的退出方法有8种:其中5种正常退出的以及3种异常退出的。
5种正常退出方式:1.return from main
                               2.calling exit
               3.calling _exit or _Exit
       4.return of the last thread from its start routine
             5.calling pthread_exit
3种异常退出方式:1.calling abort
       2.receipt of a signal
       3. response of the last thread to a cancellation request

同时c程序可以注册32个被exit自动调用的退出程序。
他们又函数atexit函数注册,并且先注册的后执行。
#include<stdlib.h>
int atexit(void (*func)(void));
在结束时函数被注册多少次就会被调用多少次。

1.正常退出函数简介

有三个函数可以正常退出程序:_exit,_Exit和exit;
函数原型:
#include<stdlib.h>
void _exit(int status);
void _Exit(int status);
#include <unistd.h>
void exit(int status);
其中_exit和_Exit直接返回到内核,而exit会执行一些清理工作再返回内核。
exit首先调用atexit注册函数,然后在执行fclose关闭所有的文件流。
三个函数都要求有退出状态,一般UNIX的shell都会有相应的程序来抓取相应的状态。
main函数return(0)和exit(0)是一样的。









内核执行程序的唯一方式是exec函数被调用。程序自动终止的唯一方式是_exit或者_Exit被调用,或者程序被动的被信号终止。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值