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

信号集操作函数

目录

一、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 来表明具体的错误原因。

http://www.dtcms.com/a/99102.html

相关文章:

  • Object结构
  • sqli-labs靶场 less 8
  • Display Serializer、Camera Deserializer(Camera Des)和SerDes‌ 加解串应用
  • 【vllm/瞎折腾】在内网wsl上安装vllm并尝试多节点部署(失败了)
  • Java并发编程面试题:线程池Fork/Join(19题)
  • 【深度学习新浪潮】具身智能及其发展前景分析
  • 万物皆可“吉卜力”,使用 AI 创建你的作品
  • 逆向中如何判断JSVMP,及如何解决?(包括实战案例)
  • OpenAI API - Agent
  • protobuf新版下载安装
  • 网络通信微服务
  • 【商城实战(95)】Ansible自动化运维,开启高效部署新篇章
  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(一)——3D/2D协方差和高斯颜色的计算
  • LeetCode 56. 合并区间 | 排序+贪心解法详解
  • 创意 Python 爱心代码分享
  • el-table 动态给每行增加class属性
  • C++ vector容器总结
  • 诠视科技MR眼镜如何使用VLC 进行RTSP投屏到电脑
  • 【从零实现Json-Rpc框架】- 项目实现 - muduo网络通信类实现篇
  • 黑盒测试的测试用例构成的八点要素
  • 突破数据迁移瓶颈!AWS Snowball如何让PB级数据“瞬间”上云?
  • 12款星光闪光污迹艺术绘画效果Clip Studio Paint笔刷画笔+闪光纹理图片 Clip Studio Glitter Texture Brushes
  • INAV电流计校准
  • sqlalchemy:将mysql切换到OpenGauss
  • 使用dumpbin和depends查看dll(exe)的依赖
  • 代码随想录算法训练营第二十八天,动态规划理论基础,509.斐波那契数,70.爬楼梯,746.使用最小花费爬楼梯。
  • OpenAI API - Practice
  • 【全栈开发】—— Paddle OCR 文字识别 + deepseek接入(基于python 最新!!!)
  • 【STL】vector介绍(附部分接口模拟实现)
  • 【C#】`Task.Factory.StartNew` 和 `Task.Run` 区别