当前位置: 首页 > article >正文

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

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

atexit 函数的原型如下:
 

int atexit(void (*func)(void));

它接受一个函数指针作为参数,
该函数指针指向一个没有参数也没有返回值的函数。
注册成功的函数将在程序正常终止时被调用,
调用顺序与它们注册的顺序相反。

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

    按照 ISO C 的规定,一个进程可以登记多达 32 个函数用于 atexit。
    如果同一个函数被多次注册,那么它也会被多次调用。
    注册的函数不能带有参数,也不能有返回值。
    注册的函数在 exit 被调用时,会按照它们注册的反向顺序执行。

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

#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


http://www.kler.cn/a/232199.html

相关文章:

  • LSTM(长短期记忆网络)详解
  • SOHO场景开局(小型,多子网):AP+管理型交换机+路由器+光猫
  • 基本数据类型和包装类型的区别、缓存池、自动拆箱装箱(面试题)
  • 0 -vscode搭建python环境教程参考(windows)
  • C语言编程练习:验证哥德巴赫猜想 进制转换 rand函数
  • Photoshop(PS)——人像磨皮
  • Android的视图绑定
  • 相机图像质量研究(5)常见问题总结:光学结构对成像的影响--景深
  • Java面向对象 方法的重写
  • GPIO中断
  • 1 月 Web3 游戏行业概览:市场实现空前增长
  • 图数据库 之 Neo4j - Browser 介绍(3)
  • ORM模型类
  • Python使用zdppy_es国产框架操作Elasticsearch实现增删改查
  • VoIP之主备注册服务器机制
  • 如何运行心理学知识(心流)来指导工作和生活
  • 【canvas】获取鼠标点击位置坐标的颜色信息
  • 今日学习总结
  • Bee V2.2 分库分表 Sharding+MongoDB ORM 稳定版发布 (更新 Maven)
  • MongoDB聚合: $sort
  • 【Linux】缓冲区与缓冲区的刷新策略
  • 如何修复Mac的“ kernel_task” CPU使用率过高的Bug?
  • PV、UV、IP
  • 【Web】vulhub Shiro-550反序列化漏洞复现学习笔记
  • 计算机网络-无线通信技术与原理
  • 509. 斐波那契数