linux进程间通信(IPC) ---- 信号集 信号阻塞集

本文介绍了Linux系统中信号集的概念和数据类型sigset_t,详细讲解了信号集相关的函数,如sigemptyset、sigfillset、sigismember、sigaddset、sigdelset,以及信号阻塞集的使用,特别是sigprocmask函数在修改进程信号阻塞集中的应用。通过示例说明了如何操作信号集和阻塞集来管理进程接收信号的行为。
摘要由CSDN通过智能技术生成

信号集概述

一个用户进程常常需要对多个信号进行处理,为了方便对多个信号进行处理,在linux系统中引入了信号集,信号集是用来表示多个信号的数据类型

信号集数据类型

sigset_t

定义路径

/usr/include/x86_64-linux-gnu/bits/sigset.h(Ubuntu 16.04)

在这里插入图片描述

信号集相关的操作主要有如下几个函数

sigemptyset
sigfillset
sigismember
sigaddset
sigdelset

sigemptyset函数

功能: 初始化一个空的信号集

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

功能
初始化由set指向的信号集,清除其中所有的信号即初始化一个空信号集
参数
set:信号集标识的地址,以后操作此信号集,对set进行操作就可以了
返回值
成功返回 0, 失败返回-1

sigfillset函数

功能:初始化一个满的信号集

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

功能
初始化信号集合set,将信号集合设置为所有信号的集合
参数
信号集标识的地址,以后操作此信号集,对set进行操作就可以了
返回值
成功返回0,失败返回-1

sigismember函数

判断某个集合中是否有某个信号

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

功能
查询signum标识的信号是否在信号集合set之中
参数
set: 信号集标识符号的地址4
<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值