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

金融行业网站建设公司企业咨询管理公司经营范围

金融行业网站建设公司,企业咨询管理公司经营范围,网站seo优化方法,三维设计软件有哪些目录 1、信号集初始化 2、向信号集中添加或删除信号 3、测试信号是否在信号集中 在 Linux 系统中,处理多个信号时常用到一种数据结构:信号集(sigset_t)。信号集允许我们将多个信号组织在一起,以便在系统调用中传递和…

目录

1、信号集初始化

2、向信号集中添加或删除信号

3、测试信号是否在信号集中


在 Linux 系统中,处理多个信号时常用到一种数据结构:信号集(sigset_t)。信号集允许我们将多个信号组织在一起,以便在系统调用中传递和操作。例如,sigaction()sigprocmask()sigpending() 等系统调用都使用信号集作为参数。

信号集的数据结构定义如下:

#define _SIGSET_NWORDS (1024 / (8 * sizeof(unsigned long int)))
typedef struct {unsigned long int __val[_SIGSET_NWORDS];
} sigset_t;

这个结构体可以表示一组信号。_SIGSET_NWORDS 计算了信号集数组所需的长整型数目,以便能够容纳所有可能的信号。

1、信号集初始化

sigemptyset() 用于初始化信号集,使其不包含任何信号。函数原型如下:

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

参数:

  • set: 指向需要初始化的信号集变量的指针。

返回值:

  • 成功时返回 0。
  • 失败时返回 -1,并设置 errno

使用示例如下:

#include <signal.h>int main() {sigset_t sig_set;if (sigemptyset(&sig_set) == -1) {perror("sigemptyset");return 1;}// 现在 sig_set 不包含任何信号return 0;
}

sigfillset() 用于初始化信号集,使其包含所有信号,包括所有实时信号。函数原型如下:

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

参数:

  • set: 指向需要初始化的信号集变量的指针。

返回值:

  • 成功时返回 0。
  • 失败时返回 -1,并设置 errno

使用示例如下:

#include <signal.h>int main() {sigset_t sig_set;if (sigfillset(&sig_set) == -1) {perror("sigfillset");return 1;}// 现在 sig_set 包含所有信号return 0;
}

2、向信号集中添加或删除信号

sigaddset() 用于将一个信号添加到信号集中。函数原型如下:

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

参数:

  • set: 指向信号集的指针。
  • signum: 要添加的信号。

返回值:

  • 成功时返回 0。
  • 失败时返回 -1,并设置 errno

使用示例如下:

#include <signal.h>int main() {sigset_t sig_set;if (sigemptyset(&sig_set) == -1) {perror("sigemptyset");return 1;}if (sigaddset(&sig_set, SIGINT) == -1) {perror("sigaddset");return 1;}// 现在 sig_set 包含 SIGINT 信号return 0;
}

sigdelset() 用于将一个信号从信号集中删除。函数原型如下:

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

参数:

  • set: 指向信号集的指针。
  • signum: 要删除的信号。

返回值:

  • 成功时返回 0。
  • 失败时返回 -1,并设置 errno

使用示例如下:

#include <signal.h>int main() {sigset_t sig_set;if (sigfillset(&sig_set) == -1) {perror("sigfillset");return 1;}if (sigdelset(&sig_set, SIGINT) == -1) {perror("sigdelset");return 1;}// 现在 sig_set 不包含 SIGINT 信号return 0;
}

3、测试信号是否在信号集中

sigismember() 用于测试某个信号是否在指定的信号集中。函数原型如下:

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

参数:

  • set: 指向信号集的指针。
  • signum: 要测试的信号。

返回值:

  • 如果信号 signum 在信号集 set 中,则返回 1。
  • 如果信号 signum 不在信号集 set 中,则返回 0。
  • 失败时返回 -1,并设置 errno

以下示例中,我们首先初始化了一个空的信号集,然后添加了 SIGINT 信号,并使用 sigismember() 函数检查信号集是否包含 SIGINT 信号。

#include <signal.h>
#include <stdio.h>int main() {sigset_t sig_set;if (sigemptyset(&sig_set) == -1) {perror("sigemptyset");return 1;}if (sigaddset(&sig_set, SIGINT) == -1) {perror("sigaddset");return 1;}if (sigismember(&sig_set, SIGINT)) {puts("信号集中包含 SIGINT 信号");} else {puts("信号集中不包含 SIGINT 信号");}return 0;
}
http://www.yayakq.cn/news/622034/

相关文章:

  • 企业网站模板演示旅游外贸网站建设推广
  • 怎么样给一个网站做横向导航栏seo软件
  • 深圳企业网站建设服务北京网络推广套餐
  • 在线制作flash的网站制作视频软件哪个免费
  • iis网站属性里创建网站公司 徐州
  • 天津地铁建设网站网站主机安全
  • 移动端网站开发教程焦作市建设工程网站
  • 教育门户网站模板建设一个导航网站
  • 注册网站多久汕头制作网站
  • 工程建设信息网站接口用什么网软件做网站
  • 常用的做网站的工具都有哪些信息流广告素材网站
  • 做网站 写文章怎样加视频做网站温州
  • 成都公司网站全网门户网站制做
  • 无锡网站制作推广公司网页登录qq入口
  • 如何做家政网站宣传网站怎么做的
  • 新网站建设方案wordpress 无法登陆后台
  • 网站弹出广告代码wordpress主机空间选择
  • 企业网站的建设目的有哪些站长统计app软件下载2021
  • 怎么用易语言做网站wordpress关闭头像
  • 做百度移动网站排威海网站建设兼职
  • 普陀酒店网站建设电商设计的前景
  • 自己做的网站怎么传入外网网站建设需要哪些人员
  • 制冷设备东莞网站建设iis5.1 发布网站
  • 成都p2p网站建设在线制作图片拼接
  • 电子商务网站开发设计传世网站建设
  • 意派网站开发新手篇网站10月份可以做哪些有意思的专题
  • 室内设计网站都有哪些公司浪网站制作
  • 网站建设管理工作小结网页搜索历史怎么找到
  • 网站开发 知识产权网络工程解决方案公司
  • 网站建设销售职责别人帮做的网站到期续费