linux 与信号集操作相关的函数
- 与信号集操作相关的函数
#include <signal.h>
清空信号集 全都为0
int sigemptyset(sigset_t *set);填充信号集 全都为1
int sigfillset(sigset_t *set);添加某个信号到信号集
int sigaddset(sigset_t *set, int signum);从集合中删除某个信号
int sigdelset(sigset_t *set, int signum);判断信号是否在信号集中
int sigismember(const sigset_t *set, int signum);
以上函数的返回值
sigemptyset(), sigfillset(), sigaddset(), and sigdelset() return 0 onsuccess and -1 on error.sigismember() returns 1 if signum is a member of set, 0 if signum isnot a member, and -1 on error.
- 用来设置或者是解除阻塞信号的函数
#include <signal.h>
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
参数介绍:
howSIG_BLOCK 设置阻塞The set of blocked signals is the union of the current set andthe set argument.SIG_UNBLOCK 解除阻塞The signals in set are removed from the current set of blockedsignals. It is permissible to attempt to unblock a signal whichis not blocked.SIG_SETMASK 设置set为新的阻塞信号集The set of blocked signals is set to the argument set.set 传入的信号集
oldset 传出的信号集
return:
sigprocmask() returns 0 on success and -1 on error.
- sigpending函数
读取当前进程的未决信号集
man sigpending
#include <signal.h>
int sigpending(sigset_t *set);
set为传出参数
返回值:成功0, 失败-1,设置errno
- 代码案例:
设置屏蔽信号集,然后发送信号,然后打印当前未决信号集
#include <signal.h>
#include <stdio.h>
#include <unistd.h>int main() {sigset_t pend, setShield;sigemptyset(&setShield);sigaddset(&setShield, SIGINT);sigaddset(&setShield, SIGQUIT);sigprocmask(SIG_BLOCK, &setShield, NULL);while (1) {sigpending(&pend);int i=1;for(; i<32; ++i) {printf("%d", sigismember(&pend, i));}printf("\n");sleep(1);}return 0;
}
// 0110000000000000000000000000000
linux 与信号集操作相关的函数相关推荐
- 2022-1-23 牛客C++项目 —— 信号集及其相应的函数
阻塞信号集和未决信号集 1.用户通过键盘 Ctrl + C,产生 2 号信号 SIGINT(信号被创建) 2.信号产生但是没有被处理(未决状态) 在内核中所有的没有被处理的信号存储在一个集合当中(PC ...
- linux中signal函数返回值,signal函数、sigaction函数及信号集操作函数
信号是与一定的进程相联系的.也就是说一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如一个进程可以忽略某些信号而只处理其他一些信号另外一个进程还可以选择如何处理信号.总之这些总与特定的进程相联 ...
- Day53 Linux setitimer函数 信号集操作函数 信号捕捉 SIGCHLD信号
目录 setitimer函数 信号集操作函数 1.信号集设定 2.igprocmask函数 3.sigpending函数 信号捕捉 1.signal函数 2.sigaction函数 SIGCHLD信号 ...
- linux的基础知识——signal信号捕捉,信号集操作函数
文章目录 1.signal捕捉信号 2.信号集操作函数 3.sigprocmask函数 4.sigpending函数 5.例子1:打印某个进程未决信号集 6.例子2:signal函数的注册捕捉执行函数 ...
- Linux系统编程32:进程信号之详解信号集操作函数(sigset_t ,sigpending,sigprocmask)
文章目录 (1)sigset_t (2)信号集操作函数 (1)sigset_t 前面说过,未决和阻塞分别用位图来表示,于是我们把保存位图这样的数据类型称为sigset_t,sigset_t称为信号集, ...
- 信号集操作函数,信号未决、阻塞、递达
转载:信号集操作函数,信号阻塞与未决 一,信号集及相关操作函数 信号集被定义为一种数据类型: typedef struct { unsigned long sig[_NSIG_WORDS]: } si ...
- 信号集操作函数,信号阻塞与未决
一,信号集及相关操作函数 信号集被定义为一种数据类型: typedef struct { unsigned long sig[_NSIG_WORDS]: } sigset_t 信号集用来描述信号的集合 ...
- _Linux系统编程—信号集操作函数
先来回顾一下未决信号集是怎么回事. 信号从产生到抵达目的地,叫作信号递达.而信号从产生到递达的中间状态,叫作信号的未决状态.产生未决状态的原因有可能是信号受到阻塞了,也就是信号屏蔽字(或称阻塞信号集, ...
- 对信号集操作函数的使用方法和顺序
对信号集操作函数的使用方法和顺序如下: ① 使用signal或sigaction函数安装和登记信号的处理. ② 使用sigemptyset等定义信号集函数完成对信号集的定义. ③ ...
最新文章
- 教你用百度地图API抓取建筑物周边位置、房价信息(附代码)
- mysql中tinyint、smallint、int、bigint的区别介绍
- P5395 【模板】第二类斯特林数·行
- 【2018.4.7】模拟赛之五-ssl2386 序列【dp】
- [渝粤教育] 西南科技大学 建筑制图 在线考试复习资料
- HDU - 6183 Color it 2017广西邀请赛(线段树)
- concat mysql sql注入_Mysql中用concat函数执行SQL注入查询的方法
- Web十大安全隐患之XSS跨站脚本
- HDU2019 数列有序!【入门】
- C#利用QrCode.Net生成二维码(Qr码)
- Visio2013 Professional专业版密钥
- 关于学历与面试的一些看法
- 3线spi屏幕驱动方式
- HMM隐马尔可夫模型进行中文文本分词
- 超融合产品的优势和适用场景
- Redis三种删除策略
- mini2440 linux驱动程序,基于linux的mini2440 led驱动及应用程序
- 绿色数据中心空调设计 书评_书评:响应式设计工作流程
- oracle修改表某列字段长度
- jquery设置cursor的属性改变光标的类型(形状)
热门文章
- 用CornerStone配置SVN,HTTP及svn简单使用说明
- jquery3和layui冲突导,致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
- 集合对象根据某个字段首字母排序
- 复选框操作checked选中为true,反之为False,也可以赋值为true,false
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(二)—— easyui的简单实用
- WINDOWS系统Eclipse+NDK+Android + OpenCv
- 8-18-Exercise
- PL/SQL Developer 使用技巧小结(转)
- MySQL使用学习使用,mysql学习--基本使用_MySQL
- python 定义函数为什么有个长线_关于格式化:如何在Python中打破这条长线?