当前位置: 首页 > article >正文

信号集操作函数

目录

一、sigpending函数

功能:

头文件:

函数原型: 

函数参数: 

返回值:

二、sigemptyset函数

功能:

原型:

参数:

返回值:

三、sigfillset函数

功能:

原型:

参数:

返回值:

四、 sigaddset函数

功能:

原型:

参数:

返回值:

五、sigdelset函数

功能:

原型:

参数:

返回值:

六、sigismember函数

功能:

原型:

参数:

返回值:

七、sigprocmask函数

功能:

函数原型:

参数原型:

返回值:


一、sigpending函数

功能:

   sigpending 函数的主要作用是获取当前进程中被阻塞且处于待处理状态的信号集。也就是说,有些信号因为被进程阻塞而暂时无法被处理,这些信号就处于待处理状态,sigpending 函数可以把这些信号收集起来。

头文件:

#include <signal.h>

函数原型: 

int sigpending(sigset_t *set);

函数参数: 

   set:这是一个指向 sigset_t 类型的指针。函数会把当前处于待处理状态的信号集存储到这个指针所指向的 sigset_t 对象中。

返回值:

        若函数执行成功,返回值为 0。

        若函数执行失败,返回值为 -1,同时会设置 errno 来表明具体的错误原因。

二、sigemptyset函数

功能

        将信号集初始化为空,也就是让信号集中不包含任何信号。

原型

#include <signal.h>int sigemptyset(sigset_t *set);

参数

   set 是指向 sigset_t 类型信号集的指针。

返回值

        成功时返回 0,出错时返回 -1。

三、sigfillset函数

功能

        将信号集初始化为包含所有可能的信号。但排除32、33

原型

#include <signal.h>int sigfillset(sigset_t *set);

参数

   set 是指向 sigset_t 类型信号集的指针。

返回值

        成功时返回 0,出错时返回 -1。

四、 sigaddset函数

功能

        将指定的信号添加到信号集中。

原型

#include <signal.h>int sigaddset(sigset_t *set, int signum);

参数

   set:指向 sigset_t 类型信号集的指针。

   signum:要添加到信号集中的信号编号。

返回值

        成功时返回 0,出错时返回 -1。

五、sigdelset函数

功能

        从信号集中移除指定的信号。

原型

#include <signal.h>int sigdelset(sigset_t *set, int signum);

参数

   set:指向 sigset_t 类型信号集的指针。

   signum:要从信号集中移除的信号编号。

返回值

        成功时返回 0,出错时返回 -1。

六、sigismember函数

功能:

        检查指定的信号是否在信号集中。

原型

#include <signal.h>int sigismember(const sigset_t *set, int signum);

参数

   set:指向 sigset_t 类型信号集的指针。

   signum:要检查的信号编号。

返回值

        如果信号在信号集中,返回 1;如果信号不在信号集中,返回 0;出错时返回 -1。

七、sigprocmask函数

功能:

        它能够对进程的信号屏蔽字进行操作。信号屏蔽字决定了哪些信号会被阻塞,也就是暂时不被进程处理。

函数原型:

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

参数原型:

        how:此参数规定了对信号屏蔽字的操作方式,其取值及含义如下:
                SIG_BLOCK:把 set 所指向的信号集中的信号添加到当前的信号屏蔽字里,即阻塞这些信号。新的信号屏蔽字是当前信号屏蔽字和 set 的并集。
                SIG_UNBLOCK:从当前的信号屏蔽字中移除 set 所指向的信号集中的信号,也就是解除对这些信号的阻塞。新的信号屏蔽字是当前信号屏蔽字和 set 的差集。
                SIG_SETMASK:把当前的信号屏蔽字设置为 set 所指向的信号集。
        set:指向 sigset_t 类型的信号集,该信号集包含了要操作的信号。若 how 为 SIG_BLOCK 或 SIG_UNBLOCK,则 set 表示要添加或移除的信号;若 how 为 SIG_SETMASK,则 set 表示新的信号屏蔽字。若 set 为 NULL,则不改变当前的信号屏蔽字,仅把当前的信号屏蔽字保存到 oldset 中。
        oldset:指向 sigset_t 类型的信号集,用于保存调用 sigprocmask 之前的信号屏蔽字。若 oldset 不为 NULL,则在调用 sigprocmask 时会将之前的信号屏蔽字保存到 oldset 中;若 oldset 为 NULL,则不保存之前的信号屏蔽字。

返回值:

        若函数执行成功,返回 0。
        若函数执行失败,返回 -1,同时会设置 errno 来表明具体的错误原因。

相关文章:

信号集操作函数

目录 一、sigpending函数 功能&#xff1a; 头文件&#xff1a; 函数原型&#xff1a; 函数参数&#xff1a; 返回值&#xff1a; 二、sigemptyset函数 功能&#xff1a; 原型&#xff1a; 参数&#xff1a; 返回值&#xff1a; 三、sigfillset函数 功能&#xf…...

学习不同电脑cpu分类及选购指南

关于电脑cpu 一、CPU型号的核心组成与命名规则Intel命名规则:AMD命名规则:5. 后缀:Intel常见后缀及其含义:AMD后缀一些常见的后缀及其含义:二、主流品牌CPU的分类与性能差异三、区分CPU型号的实用方法四、主流品牌CPU对比与选择建议五、选购CPU的注意事项关于不同主流CPU的…...

MATLAB 控制系统设计与仿真 - 30

用极点配置设计伺服系统 方法2-反馈修正 如果我们想只用前馈校正输入&#xff0c;从而达到伺服控制的效果&#xff0c;我们需要很精确的知道系统的参数模型&#xff0c;否则系统输出仍然具有较大的静态误差。 但是如果我们在误差比较器和系统的前馈通道之间插入一个积分器&a…...

Baklib知识中台驱动智能架构升级

构建四库体系驱动架构升级 在数字化转型过程中&#xff0c;企业普遍面临知识资源分散、隐性经验难以沉淀的痛点。Baklib通过构建知识库、案例库、流程库及资源库四层核心体系&#xff0c;为知识中台搭建起结构化基础框架。知识库以AI分类引擎实现文档标签化存储&#xff0c;案…...

IP第一次笔记

一、TCP协议 第0步&#xff1a;如果浏览器和host文件存在域名对应的P地址记录关系 则直接封装HTTP数据报文&#xff0c;如果没有记录则触发DNS解析获 取目标域名对应的P地址 第一步&#xff1a;终端主机想服务器发起TCP三次握手 1.TCP的三次握手 2.传输网页数据 HTTP --应用层…...

计算机三级信息安全部分英文缩写

eip&#xff0c;指令寄存器&#xff0c;用于存放指向下一条将执行指令的指针&#xff0c;即返回地址栈顶指针esp基址指针寄存器EBP&#xff0c;基地址数据执行保护DEP(Data Execute Prevention)技术可以设置内存堆栈区的代码为不可执行状态&#xff0c;从而防范溢出后代码的执行…...

Supplements of My Research Proposal: My Perspectives on the RAG

To build an agent, I think there’re a lot of things that can be considered from humans. For example, how do self-learners learn things? I think 2 sources of knowledge can never be ignored: textbooks and online cources. A question then arise: how do we …...

【安全】nginx防止host头攻击

host攻击 系统上线之前要经过安全测试,安全测试中有这么一项,请求头中的host字段,这个值随便修改之后,响应还可以正常返回,这种这种就是有风险的,是测试不通过的,默认情况下,浏览器地址栏中的URL和请求头中的host字段值的ip和端口&#xff08;或者是域名&#xff09;是一样的&a…...

vue3实现router路由

说明&#xff1a; vue3实现router路由 效果图&#xff1a; step1:项目结构 src/ ├── views/ │ ├── Home.vue │ └── User.vue ├── router/ │ └── index.js ├── App.vue └── main.jsstep2:左边路由列表C:\Users\wangrusheng\PycharmProjects\un…...

蓝桥杯省赛 棋盘 3533 二维差分+二维前缀和

传送门 0棋盘 - 蓝桥云课 const int N 2e3 10;int n,m; int a[N][N];void insert(int x11,int y11,int x22,int y22) {a[x11][y11] ;a[x11][y22 1] --;a[x22 1][y11] --;a[x22 1][y22 1] ; }void solve() {cin >> n >> m;for (int i 1;i < m;i ){int x11…...

1500 字节 MTU | 溯源 / 技术权衡 / 应用影响

注&#xff1a;本文为 “MTU 字节” 相关文章合辑。 机翻&#xff0c;未校。 讨论部分&#xff0c;以提交人为分界。 单行只有阿拉伯数字的&#xff0c;为引文转译时对回复的点赞数。 How 1500 bytes became the MTU of the internet 1500 字节是如何成为互联网 MTU 的 Fe…...

智能仪表板DevExpress Dashboard v24.2新版亮点:支持.NET 9

使用DevExpress BI Dashboard&#xff0c;再选择合适的UI元素&#xff08;图表、数据透视表、数据卡、计量器、地图和网格&#xff09;&#xff0c;删除相应参数、值和序列的数据字段&#xff0c;就可以轻松地为执行主管和商业用户创建有洞察力、信息丰富的、跨平台和设备的决策…...

【数据结构】二叉树的递归

数据结构系列三&#xff1a;二叉树(二) 一、递归的原理 1.全访问 2.主角 3.返回值 4.执等 二、递归的化关系思路 三、递归的方法设计 一、递归的原理 1.全访问 方法里调用方法自己&#xff0c;就会形成调用方法本身的一层一层全新相同的调用&#xff0c;方法的形参设置…...

Optional的stream方法,flatMap, filter应用

Java 8引入的Optional和Stream彻底改变了我们处理空值和集合操作的方式。本文将深入探讨如何将二者结合使用&#xff0c;通过四个核心场景提升代码的健壮性和简洁性。 一、Optional构成的Stream&#xff1a;空值自动过滤 当处理Optional集合时&#xff0c;我们常需要过滤掉空…...

Intellij ider部署python项目教程

自己写了一个python项目【mac电脑】&#xff0c;然后用Intellij ider打开&#xff0c;配置python解释器&#xff0c;然后一运行&#xff0c;一直报错&#xff0c; If this fails your Python may not be configured for Tk ModuleNotFoundError: No module named _tkinter 各…...

Linux进程状态补充(10)

文章目录 前言一、阻塞二、挂起三、运行R四、休眠D五、四个重要概念总结 前言 上篇内容大家看的云里雾里&#xff0c;这实在是正常不过&#xff0c;因为例如 写实拷贝 等一些概念的深层原理我还没有讲解&#xff0c;大家不用紧张&#xff0c;我们继续往下学习就行&#xff01;&…...

使用ANTLR4解析Yaml,JSON和Latex

文章目录 ANTLR4基本使用**1. 安装 Java 运行时&#xff08;必需&#xff09;****2. 安装 ANTLR4 命令行工具****方法一&#xff1a;通过包管理器&#xff08;推荐&#xff09;****macOS/Linux (Homebrew)****Windows (Chocolatey)** **方法二&#xff1a;手动安装&#xff08;…...

基于Python深度学习的鲨鱼识别分类系统

摘要&#xff1a;鲨鱼是海洋环境健康的指标&#xff0c;但受到过度捕捞和数据缺乏的挑战。传统的观察方法成本高昂且难以收集数据&#xff0c;特别是对于具有较大活动范围的物种。论文讨论了如何利用基于媒体的远程监测方法&#xff0c;结合机器学习和自动化技术&#xff0c;来…...

Ruby 简介

Ruby 简介 引言 Ruby 是一种广泛使用的动态、开源的编程语言,自 1995 年由日本程序员 Yukihiro Matsumoto(通称 Matz)设计以来,它以其优雅的语法、强大的库支持和跨平台特性赢得了全球开发者的青睐。本文将详细介绍 Ruby 的起源、特点、应用领域以及它在现代软件开发中的…...

EtherNet/IP转ProfiNet协议转换网关驱动西门子PLC与流量计的毫秒级压力同步控制

一、案例背景 汽车涂装线的静电喷涂工艺对压缩空气流量稳定性要求极高。原系统中Alicat流量计与西门子PLC因协议差异无法联动&#xff0c;导致涂料浪费率高达8%。通过JM-EIPM-PN网关实现供气系统与PLC的深度集成。从而实现了EtherNet/IP转ProfiNet的通讯。 二、设备连接与配置…...

为mariadb和mysql添加用户和修改密码的方法

一、查看MariaDB中的用户 步骤1&#xff1a;登录MariaDB sudo mysql -u root -p # 使用root账户登录&#xff08;输入密码&#xff09; 步骤2&#xff1a;查询用户列表 -- 切换到mysql系统数据库 USE mysql; -- 查看所有用户及其主机权限 SELECT User, Host FROM user; 输出…...

【力扣刷题|第十七天】0-1 背包 完全背包

目标和 力扣题目网址:目标和 这道题我们先用回溯的思想来做。首先我们设正数和为S&#xff0c;数组和为N&#xff0c;目标值为T&#xff0c;那么S-(N-S)T化简之后可以得S(TN)/2即选择的正数个数为偶数&#xff0c;而且NT也为偶数&#xff0c;那么第一个判断条件我们就有了&…...

python的内存管理

目录 1. 引用计数 2. 垃圾收集&#xff08;GC&#xff09; python的内存管理主要是引用计数和垃圾回收器来进行内存管理 1. 引用计数 每个 Python 对象都有一个引用计数&#xff0c;当引用计数为零时&#xff0c;对象的内存会被释放。 import sysa [] # 创建一个空列表对…...

TDengine 中的异常恢复

简介 本章主要介绍在 TDengine 执行命令过程中发生异常&#xff0c;如何手工终于执行的任务。可以终止连接&#xff0c;线上查询及终止事务。 如果一个事务 在一个复杂的应用场景中&#xff0c;连接和查询任务等有可能进入一种错误状态或者耗时过长迟迟无法结束&#xff0c;…...

SQL Server:当在删除数据库时因为存在触发器而无法删除

当在删除数据库时因为存在触发器而无法删除&#xff0c;你可以通过禁用触发器来解决这个问题。下面为你介绍在 SQL Server 里禁用和启用触发器的方法。 禁用数据库中所有表的触发器 你可以使用系统视图 sys.triggers 来查询数据库里所有的触发器&#xff0c;然后生成禁用这些…...

深度学习处理时间序列(3)

基于常识、不使用机器学习的基准 在开始使用像黑盒子一样的深度学习模型解决温度预测问题之前&#xff0c;我们先尝试一种基于常识的简单方法。它可以作为一种合理性检查&#xff0c;还可以建立一个基准&#xff0c;更高级的机器学习模型需要超越这个基准才能证明其有效性。对…...

C++11 -表达式/包装器

1. lambda 表达式各部分说明 [capture-list]&#xff1a;捕捉列表&#xff0c;该列表总是出现在 lambda 函数的开始位置&#xff0c;编译器根据 [] 来判断接下来的代码是否为 lambda 函数&#xff0c;捕捉列表能够捕捉上下文中的变量供 lambda 函数使用。(parameters)&#xf…...

VectorBT:使用PyTorch+LSTM训练和回测股票模型 进阶二

VectorBT&#xff1a;使用PyTorchLSTM训练和回测股票模型 进阶二 本方案基于LSTM神经网络构建多时间尺度股票收益率预测模型&#xff0c;结合VectorBT进行策略回测。核心原理是通过不同时间窗口&#xff08;5/10/20/30日&#xff09;捕捉股价的短期、中期、长期模式&#xff0c…...

蓝桥杯 第十二天 819 递增序列

注意注意&#xff1a;不考虑左上的情况&#xff0c;因为题目给的样例没有 public static int is1(char ch[][],int m,int n){int ans0;for (int i0;i<m;i){//起始点在哪for (int j0;j<n;j){int add1;while(jadd<n){if(ch[i][j]<ch[i][jadd]) ans; //横add;}add1…...

ThreadLocal 的妙用(线程隔离)与陷阱(内存泄漏)

前言 在Java开发中&#xff0c;线程安全是一个高频关键词。当我们使用多线程处理共享数据时&#xff0c;常常需要加锁或使用同步机制来避免数据混乱。但有一把“锁”却能让每个线程拥有自己的独立数据副本&#xff0c;它就是ThreadLocal。接下来通过实际案例&#xff0c;带你理…...