Linux - atexit()(注册终止)函数

Posted Sophie_h

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux - atexit()(注册终止)函数相关的知识,希望对你有一定的参考价值。

进程终⽌的⽅式有8种,前5种为正常终⽌,后三种为异常终⽌:

1、 从main函数返回;

2 、调⽤exit函数;
3 、调⽤_exit或_Exit;
4 、最后⼀个线程从启动例程返回;
5 、最后⼀个线程调⽤pthread_exit;
6 、调⽤abort函数;
7 、接到⼀个信号并终⽌;
8 、最后⼀个线程对取消请求做出响应。

atexit() 函数:注册终止函数 即main执行结束后调用的函数。
它的原型是一个返回值为空,参数为返回值为空的函数指针,void atexit(void (*func)(void))。

使用时所需头部:#include<stdlib.h>

 

atexit()函数调用的特点:
1)、exit调用注册函数的顺序与他们登记时的顺序恰恰相反,如:登记时函数的顺序为A,B,C,D,E,F,那么exit调用它们的顺序即为F,E,D,C,B,A;

2)、同一个函数若被登记多次,则也会被调用多次。

 

进程终止:

1)从main函数中返回:

 

在语句"return 0;"后添加一句输出语句,通过编译运行后,可以发现return语句后的输出语句并没有调用,表示该进程已经终止,不再继续执行。

 

2)调用exit函数终止进程:

 

结果同return结果一致,在调用exit函数后,终止进程,不再继续执行程序。

 

3)调用_exit或Exit终止进程:

 

以上是关于Linux - atexit()(注册终止)函数的主要内容,如果未能解决你的问题,请参考以下文章

Linux中相关知识(atexit(),fork(),粘滞位)

Python atexit模块

是否可以更改使用 atexit() 注册的函数中的退出代码?

进程环境详解---进程终止和 atexit 函数详解

linux c编程:进程环境

陷阱在控制台上退出