atexit()函数 

函数名:    atexit

 

原型:    int atexit(void (*func)(void)); 


头文件:    #include<stdlib.h>

 

功 能:     注册终止函数(即main执行结束后调用的函数)


说明:

        一个进程可以登记多达32个函数,这些函数将由exit自动调用。atexit()注册的函数类型应为不接受任何参数的void函数,exit调用这些注册函数的顺序与它们登记的顺序相反。同一个函数如若登记多次,则也会被调用多次。

例子:

#include <stdio.h> 
#include <stdlib.h> 
void exit1(void) 
{ 
    printf("exit1 is called\n"); 
} 
void exit2(void) 
{ 
    printf("exit2 is called\n"); 
}
 
int main(void) 
{ 
    atexit(exit1); 
    atexit(exit2); 
    return 0; 
}

运行结果:

atexit()函数_atexit


进程的终止方式:


有8种方式使进程终止,其中前5种为正常终止,它们是

1. 从 main 返回

2. 调用 exit

3. 调用 _exit 或 _Exit

4. 最后一个线程从其启动例程返回

5. 最后一个线程调用 

异常终止有3种

6. 调用 abort

7. 接到一个信号并终止

8. 最后一个线程对取消请求做出响应

 

其中调用 _exit,_Exit 都不会调用终止程序,异常终止也不会!