signal 函数1|学习笔记

简介: 快速学习 signal 函数1

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

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


signal 函数1

 

内容介绍

一.处理方式

二.功能

三.参数

四.系统默认动作

五.运行

 

一.处理方式

收到一个信号,像之前学到的GOI 一样,创建完了之后我可以去设置一下收到按某个按钮做什么事,不同的按钮做不同的事,信号设定,等待信号的到来,原理都是一致的,进程接收到信号后的处理方式。

1.当我收到一个信号时,可以执行系统默认动作

2.忽略此信号

3.执行自定义信号处理函数,程序中可用函数 signal ()改变信号的处理方式。

如果是第3中就要自己设定一个函数,进行定义,收到某一个信号就调自己的函数,干什么事都是收到的信号来决定的

在信号设定中是用 signal 去设定的,将来进程收到这个信号的时候,就要调用 signal 函数,handler 是函数值的类型,就是将来收到信号,就是自动调用 handler 函数。

 

二.功能

功能:

注册信号处理函数(不可用于 SIGKILL,SIGSTOP信号),即确定收到信号后处理函数的入口

 

三.参数

参数:

signal 信号编号 handler 的取值:忽略该信号,SIG-IGN,执行

 

四.系统默认动作

系统默认动作:

SIG-DFL ,自定义信号处理函数:信号处理函数名,如果调了参数是 SIG-DFN 意味这将信号忽略,如果第二个参数是 SIG-DFL的话,意思就是将来收到 signum的信号,第三种情况就是自己的进来,成功返回上一个入口,然后失败返回上一个。跟GDP效果按钮差不多。

 

五.运行

运行就会打印一句话:

wait for 然后 signal 进行信号设定,当我收到 SIGTNT 时就会调用函数,收到另外一个信号也会调用,handler 函数,然后接下来 pause 就继续等信号,又等一个信号之后程序就结束了,回调函数是自己定义的,必须没有参数,有一个整行的参数,将来你收到哪一个信号之后就调这个回调函数, signo 就是信号的标识,就是编号,你收到其他信号就不调这个函数,然后看效果2,image.gif

等待信号,回调函数被执行,按 control 加执行就导入了一个 recv SIGQUIT 就收到了两个信号,两个信号就都结束了,所以和回调函数类似,没有返回值。

相关文章
|
2月前
|
安全
C 标准库 - <signal.h> 详解
`&lt;signal.h&gt;` 是 C 标准库中的头文件,提供信号处理功能,用于通知程序特定事件,如非法操作或定时器到期。它定义了多种信号常量(如 `SIGINT`、`SIGTERM`、`SIGKILL`、`SIGSEGV`、`SIGUSR1` 和 `SIGUSR2`),并允许通过 `signal()` 或 `sigaction()` 设置信号处理函数。
|
消息中间件 Unix Linux
进程通信 软中断 signal()解读
进程通信 软中断 signal()解读
|
6月前
并发编程之的await和signal等方法的详细解析
并发编程之的await和signal等方法的详细解析
33 0
|
6月前
|
存储 Unix Linux
<C语言错误处理> <signal.h>头文件及signal函数等内置函数
<C语言错误处理> <signal.h>头文件及signal函数等内置函数
|
存储 固态存储 Linux
深入学习tombstone和signal
深入学习tombstone和signal
深入学习tombstone和signal
|
Linux
wait() 函数和 waitpid() 函数
wait() 函数和 waitpid() 函数
727 0
wait() 函数和 waitpid() 函数
|
物联网 Linux C语言
Wait 函数|学习笔记
快速学习 Wait 函数
Wait 函数|学习笔记
pthread_detach函数
指定该状态,线程主动与主控线程断开关系。线程结束后(不会产生僵尸线程),其退出状态不由其他线程获取,而直接自己自动释放(自己清理掉PCB的残留资源)进程结束后,线程也会结束。网络、多线程服务器常用
|
JavaScript 物联网 Linux
Alarm 函数|学习笔记
快速学习 Alarm 函数
|
Python
Python编程:signal处理超时问题
Python编程:signal处理超时问题
195 0