day14 信号机制(下)

news2024/10/7 14:23:09

目录

信号集、信号的阻塞


信号集、信号的阻塞

有时候不希望在接收到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数。这种情况可以通过阻塞信号实现。

信号的阻塞概念:

信号的“阻塞”是一个开关动作,值得是阻止信号被处理,但不能阻止信号产生。

 信号的状态:

信号递达(Delivery):实际信号执行的处理过程(3种状态:忽略、执行默认动作、捕获)

信号未决(Pending):从产生到递达之间的状态;

信号集操作函数

//创建信号集, 是一个32bit、64bit、128bit的数组
siget_t set;

//清空信号集      
sigemptyset(sigset_t *set); 

//全部置1   
sigfillset(sigset_t *set);	

//将一个信号添加到集合中
sigaddset(sigset_t *set, int signum);	

//将一个信号从集合中移除
sigdelset(sigset_t *set, int signum);	

// 判断一个信号是否在集合中。
sigismember(const sigset_t *set,int signum);

设定对信号集内的信号的处理方式(阻塞或不阻塞)

#include <signal.h>
int sigprocmask( int how, const sigset_t *restrict set, sigset_t *restrict oset );

返回值:若成功则返回0,若出错则返回-1

首先,若oset是非空指针,那么进程的当前信号屏蔽字通过oset返回。

其次,若set是一个非空指针,则参数how指示如何修改当前信号屏蔽字。

how可选用的值:(注意,不能阻塞SIGKILL和SIGSTOP信号)

                SIG_BLOCK :   把参数set中的信号添加到信号屏蔽字中

                SIG_UNBLOCK: 从信号屏蔽字中删除参数set中的信号

                SIG_SETMASK: 把信号屏蔽字设置为参数set中的信号

int pause(void);

进程一直阻塞,直到被信号中断,返回值:-1 并设置errno为EINTR

函数行为:

        1、如果信号的默认处理动作是终止进程,则进程终止,pause函数么有机会返回。

        2、如果信号的默认处理动作是忽略,进程继续处于挂起状态,pause函数不返回

        3、 如果信号的处理动作是捕捉,则调用完信号处理函数之后,pause返回-1。

        4 、pause收到的信号如果被屏蔽,那么pause就不能被唤醒 

int sigsuspend(const sigset_t *sigmask);

功能:将进程的屏蔽字替换为由参数sigmask给出的信号集,然后挂起进程的执行

参数:sigmask:希望屏蔽的信号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

234:vue+openlayers 加载本地shp数据,在map上显示图形

第234个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中利用shapefile读取本地的shp数据,并在地图上显示图形。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果安装引用配置方式示例源代码(共143行)相关API参考:专栏…

自然语言处理 —— 03 统计语言模型

一、背景 统计语言模型的理论基础是信源-信道模型,这两个模型都基于马尔可夫假设,即当前的事件只依赖于前面的一些事件。在统计语言模型中,当前的单词只依赖于前面的一些单词,而在信源-信道模型中,接收端只能看到传输过程中的有限的信息,而不知道整个传输过程。信源-信…

ASEMI代理ADI亚德诺AD8638ARJZ-REEL7车规级芯片

编辑-Z AD8638ARJZ-REEL7芯片参数&#xff1a; 型号&#xff1a;AD8638ARJZ-REEL7 偏移电压&#xff1a;3μV 输入偏置电流&#xff1a;1.5 pA 输入失调电流&#xff1a;7 pA 输入电压范围&#xff1a;−0.1~ 3V 共模抑制比&#xff1a;133 dB 输入电阻&#xff1a;22.…

Nuxt3中使用swiper

参考&#xff1a;nuxt3&#xff1a;swiper实现轮播效果_nuxt 使用swiper_snowli的博客-CSDN博客再引入swiper时&#xff0c;尝试了npm 包&#xff1a; swiper、vue-awesome-swiper等&#xff0c;尝试在nuxt3里增加plugin的方式引入&#xff0c;都没有成功&#xff0c;个人感觉应…

材料科学基础名词解释|第二章 晶体缺陷

第二章 晶体缺陷 1、空位形成能&#xff1a;在某一空位周围的原子&#xff0c;它们在靠近空位一侧失去了正常的原子作用力&#xff0c;平衡位置向空位存在的地方移动&#xff0c;引起空位周围晶格畸变&#xff0c;系统能量增高&#xff0c;这部分增高的能量叫做空位形成能。 …

【CSDN周赛】第46期题解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSDN周赛】 本篇文章目录 &#x1f30f;一、吃吃吃&#x1f338;题目描述&#x1f338;题解 &#x1f30f;二、n …

论文的总体结构及质量控制

要写出一篇高质量AI领域的论文&#xff0c;首先要搞清楚论文由哪几部分组成&#xff0c;即论文的总体结构。同时&#xff0c;还要了解AI论文的质量评价与质量控制的指标。这样做的目的是为了弄明白AI论文的结构以及什么样的AI论文才是好的论文。 通常一篇AI论文的总体结构主…

React 列表 Keys

列表 & Keys 列表 React 列表可以使用 JavaScript 的 map() 方法来创建。如下&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8" /> <title>React demo</title> <script src"https://cdn.static…

5.2、Unix/Linux上的五种IO模型

5.2、Unix/Linux上的五种IO模型 1.阻塞blocking2.非阻塞non-blocking&#xff08;NIO&#xff09;3.IO复用&#xff08;IO_multiplexing&#xff09;4.信号驱动&#xff08;signal-driven&#xff09;5.异步&#xff08;asynchronous&#xff09;①异步函数介绍 1.阻塞blocking…

大文件传输的3个重要替代方案

企业文件同步传输是一个广泛的类别。如何与地理位置相距遥远的合作伙伴进行同步、共享和协作呢&#xff1f;在本文中&#xff0c;我们将讨论可用于企业大文件同步传输的3种解决方案。 IBM Aspera Caption Aspera是一种高度可扩展、用户友好的解决方案&#xff0c;用于传输和同…

AI-TestOps —— 软件测试工程师的一把利剑

写在前面软件测试的前世今生测试工具开始盛行AI-TestOps 云平台● AI-TestOps 功能模块● AI-TestOps 自动化测试流程 写在前面 最近偶然间看到一句话&#xff1a;“软件测试是整个 IT 行业中最差的岗位”。这顿时激起了我对软件测试领域的兴趣&#xff0c;虽然之前未涉及过软…

堆排序及常见面试题

⭐️前言⭐️ 本篇文章记录堆排序以及对应的一些练习。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博…

硬“核”数字员工:中国核能行业协会携手实在智能,成功举办核能行业数字化实战培训

导语&#xff1a; 近期&#xff0c;中国核能行业协会携手实在智能&#xff0c;成功举办核能行业数字化实战培训&#xff0c;通过理论学习和参与实践&#xff0c;学员们亲手打造出一个个硬“核”数字员工。 十多张表格快速切换&#xff0c;无数串数字在面前跳动&#xff0c;上岗…

数据中台建设:千万级的瀑布式,和十万级的迭代式,你会选择哪一个?

中台十年&#xff0c;再看已成桑田。 最初&#xff0c;为了解决互联网行业快速发展催生出的海量数据累积和碎片化问题&#xff0c;企业开始尝试将数据整合到一个中央平台&#xff0c;以提高数据的使用效率和管理水平&#xff0c;中台建设雏形初现。巨头领跑之下&#xff0c;从…

刷题笔记【7】| 快速刷完67道剑指offer(Java版)

本文已收录于专栏 &#x1f33b; 《刷题笔记》 文章目录 前言&#x1f3a8; 1、二叉树中和为某一值的路径题目描述思路&#xff08;深度优先搜索&#xff09; &#x1f3a8; 2、复杂链表的复制题目描述思路 &#x1f3a8; 3、二叉搜索树与双向链表题目描述思路 &#x1f3a8; 4…

【蓝桥杯省赛真题20】python二次加密 青少年组蓝桥杯比赛python编程省赛真题解析

目录 python二次加密 一、题目要求 1、编程实现 2、输入输出 二、解题思路

STATS 782 - Numerical Computation

文章目录 一、Simple Graphics1. 用 plot&#xff08;&#xff09;函数画图 二、Optimization1. 简单求最值2. Interpolation&#xff08;插值&#xff09;3. optim&#xff08;&#xff09;函数 一、Simple Graphics 1. 用 plot&#xff08;&#xff09;函数画图 x 和 y&…

Linux常用命令——iptables命令

在线Linux命令查询工具 iptables Linux上常用的防火墙软件 补充说明 iptables命令是Linux上常用的防火墙软件&#xff0c;是netfilter项目的一部分。可以直接配置&#xff0c;也可以通过许多前端和图形界面配置。 补充说明 - 语法选项基本参数 - 命令选项输入顺序工作机制…

【java】CGLIB动态代理原理

文章目录 1. 简介2. 示例3. 原理4. JDK动态代理与CGLIB动态代理区别&#xff08;面试常问&#xff09; 1. 简介 CGLIB的全称是&#xff1a;Code Generation Library。 CGLIB是一个强大的、高性能、高质量的代码生成类库&#xff0c;它可以在运行期扩展Java类与实现Java接口&a…

【SAP Abap】X-DOC:SE43 - SAP 用户菜单定义

X-DOC&#xff1a;SE43 - SAP 用户菜单定义 1、菜单结构2、菜单配置3、菜单自定义4、实践演示 1、菜单结构 SAP的菜单栏&#xff0c;支持按层次结构配置&#xff0c;包括以下两个概念&#xff1a; &#xff08;1&#xff09;菜单项&#xff1a;具体的一个菜单目录或菜单项&…