注册进程退出清理函数|学习笔记

简介: 快速学习注册进程退出清理函数

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频注册进程退出清理函数 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/10994


注册进程退出清理函数

 

进程退出清理

进程在退出前可以用 atexit 函数注册退出处理函数

#include<staio.h>

Int atexit(void (*function )(void));

它是包含一下头文件的,说明这个函数时一个库函数,这个函数返回值是整型的,参数是函数型的。*加变量被括号起来的一个函数指针,意思是调用atexit函数时传一个函数地址出来,等进程结束之后来执行函数。

功能:

注册进程正常结束前调用的函数,进程退出执行注册函数。

参数:

Function:进程结束前,调用函数的入口地址。一个进程中的可以多次调用atexit函数注册清理函数,正常结束前调用函数的顺序和注册时的顺序相反。意思时最后注册的先于之前的

例子:04.atexit.c

#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>

void clear _fun1(void)

{

printf(“perform clear fun1 \n”);

}

void clear _fun2(void)

{

printf(“perform clear fun2\n”);

}

void clear _fun1(void)

{

printf(“perform clear fun3\n”);

}

Int main(int argc.char *argv[])

{

atexit(clear_fun1);

atexit(clear_fun2);

atexit(clear_fun3);

print(“process exit 3 sec later!!!\n”);

sleep(3);

return 0;

}

进程结束后会调用上面的三个函数,fun3,fun2,fun1,先注册的而后执行,后注册的先执行

程序运行效果:

可以看到沉睡三秒后,才开始执行。并且执行的顺序是 fun3fun2fun1 的。

image.gif

相关文章
|
Linux
进程等待(wait和wait函数)【Linux】
进程等待(wait和wait函数)【Linux】
364 0
|
6月前
|
Shell Linux C语言
函数和进程之间的相似性
在一个C程序可以fork/exec另一个程序,其过程是先fork一个子进程,然后让子进程使用exec系列函数将子进程的代码和数据替换为另一个程序的代码和数据,之后子进程就用该程序的数据执行该程序的代码,从而达到程序之间相互调用的效果。在学了C语言、C++或是JAVA等高级语言,你会知道,在这些语言中的函数是可以相互进行见调用的,但是在学习了Linux的前面的知识后,你就会有意无意的认识到其实进程也是与函数有相同之处的,进程之间也是可以相互调用的。程序之间相互调用带来的好处之一。那么下面就将这部分内容扩展。
106 0
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
548 13
|
Linux C语言
C语言 多进程编程(三)信号处理方式和自定义处理函数
本文详细介绍了Linux系统中进程间通信的关键机制——信号。首先解释了信号作为一种异步通知机制的特点及其主要来源,接着列举了常见的信号类型及其定义。文章进一步探讨了信号的处理流程和Linux中处理信号的方式,包括忽略信号、捕捉信号以及执行默认操作。此外,通过具体示例演示了如何创建子进程并通过信号进行控制。最后,讲解了如何通过`signal`函数自定义信号处理函数,并提供了完整的示例代码,展示了父子进程之间通过信号进行通信的过程。
|
Linux API
Linux源码阅读笔记07-进程管理4大常用API函数
Linux源码阅读笔记07-进程管理4大常用API函数
|
编译器
【收藏】内核级利用通用Hook函数方法检测进程
【收藏】内核级利用通用Hook函数方法检测进程
|
运维 JavaScript Serverless
Serverless 应用引擎产品使用合集之函数计算里中FC出现函数还没有执行完进程就关闭了是什么导致的
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
Linux Shell 程序员
【进程控制】进程程序替换的原理以及exec函数族
【进程控制】进程程序替换的原理以及exec函数族
|
存储 算法 Unix
【创建进程】fork函数与写时拷贝
【创建进程】fork函数与写时拷贝
|
Linux 数据安全/隐私保护
进程间通信之共享内存及其shm函数的使用【Linux】
进程间通信之共享内存及其shm函数的使用【Linux】
776 2

热门文章

最新文章