atexit函数的使用【学习笔记】

 1 #include "apue.h"
 2
 3 static void my_exit1(void);
 4 static void my_exit2(void);
 5
 6
 7 int main(void)
 8 {
 9     int ret = -1;
10
11     ret = atexit(my_exit2);
12     if(ret != 0)
13         err_sys("can‘t not register my_exit2\r\n");
14
15     ret = atexit(my_exit1);
16     if(ret != 0)
17         err_sys("can‘t not register my_exit1\r\n");
18
19     ret = atexit(my_exit1);
20     if(ret != 0)
21         err_sys("can‘t not register my_exit1\r\n");
22
23     printf("main done\r\n");
24
25     exit(0);
26
27 }
28
29 static void my_exit1(void)
30 {
31     printf("first exit handler\r\n");
32 }
33 static void my_exit2(void)
34 {
35     printf("second exit handler\r\n");
36 }

时间: 2024-10-09 20:26:24

atexit函数的使用【学习笔记】的相关文章

自定义属性之图片切换实例——代码简化、函数合并——JS学习笔记2015-5-30(第43天)

鉴于for循环的重要性,今天再来回顾下什么时候想到使用for循环: 1.重复执行某些代码:2.每次执行的时候有个数字在变化: 说道代码简化,函数合并 这里要去观察自己的代码,当发现自己写的代码,在功能上存在相似的代码段时,看看他们能不能合并 也就是函数的使用思想,就是被用来重复调用:让程序的整体代码变得简洁: 和合并的过程中,注意调试效果,看看有没有影响到原来效果的执行: 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta ht

Java中执行存储过程和函数(web基础学习笔记十四)

一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. CallableStatement 接口继承自PreparedStatement 接口.所以CallableStatement 接口包含有Statement 接口和PreparedStatement 接口定义的全部方法,但是并不是所有的方法我们都要使用,主要使用的方法有这样几个: CallableStatement 常用方法: 返回类型 方法签名 说明 boolean execute() 执行 SQL 语句

多态性与虚函数——C/C++学习笔记

多态性(polymorphism) 即:向不同对象发送同一个消息,不同的对象在接收时候会产生不同行为. 所谓消息,就是函数调用. C++中多态性就是:具有不同功能的函数可以有相同的函数名称.即实现用同一个函数名调用不同的函数内容. C++多态性分为:静态多态性 和 动态多态性 静态多态性:通过函数重载或者运算符重载实现,在编译阶段即知道函数的全部调用关系,也称为是编译时的多态性.根据表达式上下文确定该执行哪一个功能. 优点:调用速度快,效率高:缺点:缺乏灵活性. 动态多态性:在运行时实现的多态,

回调函数(callback)学习笔记

1.stack overflow 上大神的描述(浏览的网页没记住): A "callback" is any function that is called by another function which takes the first function as a parameter. 2.看了几天的介绍,自己关于回调的简单理解: 1)为了干成某件事,自己建立模块A,然后在A里有一个函数f1负责具体实现某项功能: 2)来自其他地方的模块B已经具备A需要的部分基本功能,B里有个函数 

Lua学习笔记(六):函数-续

Lua中的函数是带有词法定界(lexical scoping)的第一类值(first-class values).第一类值指:在Lua中函数和其他值(数值.字符串)一样,函数可以被存放在变量中,也可以存放在表中,可以作为函数的参数,还可以作为函数的返回值.词法定界指:嵌套的函数可以访问他外部函数中的变量.这一特性给Lua提供了强大的编程能力. Lua中关于函数稍微难以理解的是函数也可以没有名字,匿名的.当我们提到函数名(比如print),实际上是说一个指向函数的变量,像持有其他类型的变量一样:

python学习笔记大纲

因为工作需要,开始了python的学习之旅.学习的主要内容包括python基础知识.python数据分析基础知识.numpy专题学习.基于python的机器学习算法实现. 下面是系列笔记的一个大纲,希望朋友们多提意见和建议. [一]python基础知识 python基础教程学习笔记---(1)基础语法 python基础教程学习笔记---(2)列表和元组 python基础教程学习笔记---(3)字符串 python基础教程学习笔记---(4)字典 python基础教程学习笔记---(5)条件.循环

C++ Primer 学习笔记_105_特殊工具与技术 --联合:节省空间的类

特殊工具与技术 --联合:节省空间的类 联合是一种特殊的类.一个 union 对象可以有多个数据成员,但在任何时刻,只有一个成员可以有值.当将一个值赋给 union 对象的一个成员的时候,其他所有都变为未定义的. 为 union 对象分配的存储的量至少与包含其最大数据成员的一样多.联合提供了便利的办法表示一组相互排斥的值,这些值可以是不同类型的. 1.定义联合 作为例子,我们可能有一个处理不同各类数值或字符数据的过程.该过程可以定义一个 union 来保存这些值: union ToKenValu

《JavaScript高级程序设计》学习笔记12篇

写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的东西进去 目录 JS学习笔记1_基础与常识 JS学习笔记2_面向对象 JS学习笔记3_函数表达式 JS学习笔记4_BOM JS学习笔记5_DOM JS学习笔记6_事件 JS学习笔记7_表单脚本 JS学习笔记8_错误处理 JS学习笔记9_JSON JS学习笔记10_Ajax JS学习笔记11_高级技巧

【视频编解码&#183;学习笔记】11. 提取SPS信息程序

一.准备工作: 回到之前SimpleH264Analyzer程序,找到SPS信息,并对其做解析 调整项目目录结构: 修改Global.h文件中代码,添加新数据类型UINT16,之前编写的工程中,UINT8和UINT32都为小写表示,为了更符合编程规范,将其改为全大写(可使用ctrl+H在整个解决方案内进行替换). typedef unsigned char UINT8; typedef unsigned short UINT16; typedef unsigned int UINT32; 之后编

APUE学习笔记——10.9 信号发送函数kill、 raise、alarm、pause

转载注明出处:Windeal学习笔记 kil和raise kill()用来向进程或进程组发送信号 raise()用来向自身进程发送信号. #include <signal.h> int kill(pid_t pid,int signo); int raise(int signo); Both return: 0 if OK,?1 on error kill向进程号为pid的进程发送signo信号 能够看出 以下两行代码是等价的: kill(getpid(), signo); raise(sig