Linux atexit函数解析

Linux atexit函数被称为“终止处理程序”,一个进程最多可以注册32个函数,这个函数由exit自动调用

atexit函数原型是:

#include <stdlib.h>

int atexit(void (*func)(void)); 
<span style="white-space:pre">	</span>Returns: 0 if OK, nonzero on error
 
调用方法如图:

Linux atexit函数解析_第1张图片

按照UNIX高级编程中写了程序:

#include "apue.h"

static void my_exit1(void);
static void my_exit2(void);


int main(void)
{
	if(atexit(my_exit2) != 0)
		err_sys("error 1");

	if(atexit(my_exit1) != 0)
		err_sys("error 2");

	if(atexit(my_exit1) != 0)
		err_sys("error 3");

	printf("main is done\n");
	return (0);
}
static void my_exit1(void)
{
	printf("my_exit1\n");
}
static void my_exit2(void)
{
	printf("my_exit2\n");
}
效果如图:

Linux atexit函数解析_第2张图片

你可能感兴趣的:(linux)