当前位置: C语言 -- 标准库 -- <stdlib.h> -- atexit

atexit函数


概要:
#include <stdlib.h>
int atexit(void (*func)(void));

描述:

该函数注册exit函数调用时自动调用的函数。

实现最少可以注册32个函数。如果注册多个函数,将按注册顺序逆序调用,即后注册的先调用。

如果atexit函数调用发生在exit函数之后,atexit函数能否调用成功ISO/IEC 9899:2018标准未作明确说明。

atexit函数注册不同于at_quick_exit函数注册,如果一个函数既要注册atexit函数,又要注册at_quick_exit函数,必须分别注册。


参数:
void (*func)(void)

指向一个无参数、无返回值的函数的指针,指向函数为将注册的函数。


返回值:

如果注册成功,函数返回0;如果注册失败,函数返回一个非0值。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
/*函数atexit范例*/

#include <stdio.h>
#include <stdlib.h>

void funcOne(void)
{
    puts("function one.");
}

void funcTwo(void)
{
    puts("function two.");
}

int main(void)
{
    atexit(funcOne);
    atexit(funcTwo);
    puts("main function.");

    exit(EXIT_SUCCESS);
}


输出:

main function.

function two.

function one.


相关内容:
at_quick_exit 注册quick_exit函数调用时自动调用的函数。