C语言中在main函数之后运行的函数

在 Linux 平台上,atexit 函数同样是一个用于注册终止处理函数的库函数,它是 C 标准库 <stdlib.h> 的一部分。atexit 函数允许你注册一个或多个函数,这些函数会在 main 函数执行结束后,或者在调用 exit 函数时,由 exit 自动调用。这些函数通常用于执行一些清理任务,如关闭文件、释放资源等。

atexit 函数的原型如下:

cpp 复制代码
int atexit(void (*func)(void));

它接受一个函数指针作为参数,

该函数指针指向一个没有参数也没有返回值的函数。

注册成功的函数将在程序正常终止时被调用,

调用顺序与它们注册的顺序相反。

在 Linux 平台上使用 atexit 时,需要注意以下几点:

按照 ISO C 的规定,一个进程可以登记多达 32 个函数用于 atexit。

如果同一个函数被多次注册,那么它也会被多次调用。

注册的函数不能带有参数,也不能有返回值。

注册的函数在 exit 被调用时,会按照它们注册的反向顺序执行。

下面是一个简单的 C 语言示例,演示了如何在 Linux 平台上使用 atexit:

cpp 复制代码
#include <stdio.h>  
#include <stdlib.h>  

void cleanup1() {  
	printf("Cleanup 1 executed\n");  
}  

void cleanup2() {  
	printf("Cleanup 2 executed\n");  
}  

int main(int argc,char *argv[]) {  
	// 注册两个清理函数  
	atexit(cleanup1);  
	atexit(cleanup2);  

	printf("Program is exiting\n");  
	return 0;  
}

:/tmp/temp$ gcc test.c

/tmp/temp$ ./a.out

Program is exiting

Cleanup 2 executed

Cleanup 1 executed

相关推荐
BYSJMG17 分钟前
计算机毕设推荐:基于python的农产品价格数据分析与预测的可视化系统的设计与实现 基于Python农产品管理系统【源码+文档+调试】
大数据·开发语言·hadoop·python·数据分析·django·课程设计
火山kim24 分钟前
一文速通C#(网页资源版)
开发语言·c#
冬天vs不冷31 分钟前
Java基础(十):关键字static详解
java·开发语言
lingchen19061 小时前
MATLAB矩阵及其运算(四)矩阵的运算及操作
开发语言·matlab·矩阵
程序员小范1 小时前
TIOBE 8月编程语言榜深度解析:Python占比突破26%,Perl成最大黑马
开发语言·python·perl
是三好1 小时前
单例模式(Singleton Pattern)
java·开发语言·算法·单例模式
王伯安呢1 小时前
Python 环境配置初学者指南:从安装到 Pycharm 项目配置
开发语言·python·pycharm·环境配置·初学者
1uther1 小时前
Unity核心概率④:MonoBehavior
开发语言·游戏·unity·c#·游戏引擎
小丑尽欢1 小时前
R语言根据经纬度获得对应样本的省份
开发语言·r语言
智者知已应修善业1 小时前
【51单片机6位数码管显示矩阵键值至右向左自左向右】2022-11-29
c语言·经验分享·笔记·嵌入式硬件·51单片机