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,重新设定了,设置收到那个信号调那个函数,上一次设定这个信号的入口要知道。

相关文章
|
4天前
|
存储 C语言
C语言函数的返回值
C语言函数的返回值
7 0
|
4月前
|
存储 Unix Linux
<C语言错误处理> <signal.h>头文件及signal函数等内置函数
<C语言错误处理> <signal.h>头文件及signal函数等内置函数
|
10月前
|
存储 固态存储 Linux
深入学习tombstone和signal
深入学习tombstone和signal
130 0
深入学习tombstone和signal
pthread_detach函数
指定该状态,线程主动与主控线程断开关系。线程结束后(不会产生僵尸线程),其退出状态不由其他线程获取,而直接自己自动释放(自己清理掉PCB的残留资源)进程结束后,线程也会结束。网络、多线程服务器常用
|
Linux
wait() 函数和 waitpid() 函数
wait() 函数和 waitpid() 函数
614 0
wait() 函数和 waitpid() 函数
|
物联网 Linux 开发者
signal 函数1|学习笔记
快速学习 signal 函数1
85 0
signal 函数1|学习笔记
|
物联网 Linux 开发者
Waitpid 函数|学习笔记
快速学习 Waitpid 函数,“Waitpid 函数”,也是“等”。虽然功能和 “Wait” 相同,但是 “Waitpid” 实现的功能比 “Wait” 实现的功能更多。
121 0
Waitpid 函数|学习笔记
|
物联网 Linux C语言
Wait 函数|学习笔记
快速学习 Wait 函数
181 0
Wait 函数|学习笔记
|
开发者 Python
函数的返回值| 学习笔记
快速学习函数的返回值
84 0