signal 函数返回值|学习笔记

简介: 快速学习 signal 函数返回值

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频signal 函数返回值】学习笔记,与课程紧密联系,让用户快速学习知识。

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


signal 函数返回值

 

内容介绍:

一.验证 signal 函数的返回值

二.设置 fun1还是 fun2

 

一.验证 signal 函数的返回值

接下来验证 signal 函数的返回值,可以看到 signal 的返回值是一个编号如果成功,就是返回一个函数地址,该地址为此信号上一次注册的信号处理函数的地址。

失败的话就是返回SIG,如果上一次没有设定信号,返回值就是空的。先看main 函数,它是定义了指针变量类型, typedef 类型是自己出来的,是一个函数指针类型,用 sighandler_的变量都是函数指摘变量,没有返回值,是一个类型的。

定一个指针变量在这里面用 signal 去设置信号,当收到2号信号的时候,第一次返回值就会是 INT 这个信号,所以 return fun addr is 就会被打出来。

 

二.设置 fun 1 还是 fun2

然后接下来就是重新弄2号信号,当我收到2号信号的时候,就是 fun2 ,就会返回一个函数的地址,如果成功,上一次设定的信号就是变量值,其实25号的变量就是 fun1,为什么要有返回值?

我们用指针重新设定入口,保存上一次的入口,然后可以恢复,SIGOUIT这个信号是第一次设定,然后就是fun1,在这个程序里面并没有设定过,然后看 signal 2到fun1 就都会出来,就清楚了如果是第一次设定这个信号返回值就是 NULL ,如果是以后再设置的话,它的返回值就是上一次设定的入口.

image.gif但是注意到从25行以后,如果收到2号信号,它现在就不调 fun1 了 ,就调用fun2,重新设定了,设置收到那个信号调那个函数,上一次设定这个信号的入口要知道。

相关文章
|
存储 算法 数据库
经典算法学习之-----顺序查找,折半查找,索引查找(二)
经典算法学习之-----顺序查找,折半查找,索引查找(二)
507 0
|
关系型数据库 MySQL Linux
Navicat15连接本地虚拟机的Mysql(Centos7)
Navicat15连接本地虚拟机的Mysql(Centos7)
1042 0
Navicat15连接本地虚拟机的Mysql(Centos7)
|
8月前
|
数据采集 分布式计算 监控
月之暗面Kimi大模型海量数据预处理实践
加速大模型的训练迭代,在模型数据预处理方面,需要高性价比、弹性灵活的 CPU 和 GPU 算力满足模型迭代的业务实践。
|
API Windows
Window本地部署ChatTTS
这篇文章详细介绍了如何在Windows系统上本地部署ChatTTS,实现将文本转化为高质量的语音输出,并提供了简便的部署方法和使用指南。
1039 2
Window本地部署ChatTTS
|
7月前
|
Go 索引 Perl
【LeetCode 热题100】【二叉树构造题精讲:前序 + 中序建树 & 有序数组构造 BST】(详细解析)(Go语言版)
本文详细解析了二叉树构造的两类经典问题:通过前序与中序遍历重建二叉树(LeetCode 105),以及将有序数组转化为平衡二叉搜索树(BST,LeetCode 108)。文章从核心思路、递归解法到实现细节逐一拆解,强调通过索引控制子树范围以优化性能,并对比两题的不同构造逻辑。最后总结通用构造套路,提供进阶思考方向,帮助彻底掌握二叉树构造类题目。
414 9
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
695 4
|
C# 数据安全/隐私保护 计算机视觉
C#开发者的新选择:使用ImageSharp进行图像处理
C#开发者的新选择:使用ImageSharp进行图像处理
1577 8
|
移动开发 网络协议 编译器
实战案例3:C语言实现的HTTP服务器
实战案例3:C语言实现的HTTP服务器
|
安全 程序员 C++
【C++ 泛型编程 入门篇】 C++ decltype关键字的妙用:使代码更简洁易读
【C++ 泛型编程 入门篇】 C++ decltype关键字的妙用:使代码更简洁易读
300 0
【C++ 泛型编程 入门篇】 C++ decltype关键字的妙用:使代码更简洁易读
|
存储 运维 Nacos
nacos常见问题之连接用户名和密码把明文用户名和密码进行加密如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
2242 2