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

来源:互联网 发布:中国贴吧 知乎 编辑:程序博客网 时间:2024/05/17 02:04

   程序退出函数

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 0
原创粉丝点击