linux系统编程 信号集函数的使用-打印未决信号集

  1 /*
  2 设置信号集并打印
  3 修改阻塞信号集
  4 打印未决信号集
  5 */
  6 #include<stdio.h>
  7 #include<signal.h>
  8 #include<unistd.h>
  9 void print(sigset_t *ped)
 10 {
 11         int i;
 12         for(i=1;i<32;i++){
 13                 if(sigismember(ped,i)==1){//判断某个信号是否在信号集中
 14                 putchar('1');//打印int类型变量
 15                 }else
 16                 printf("0");
 17         }
 18         printf("\n");
 19 }
 20 void main(void)
 21 {
 22         sigset_t set,ped;//定义我的信号集,接收未决信号集合的集合
 23         sigemptyset(&set);//初始化我的信号集
 24         sigaddset(&set,SIGINT);//将信号集中的SIGSTOP设置为1
 25         sigprocmask(SIG_BLOCK,&set,NULL);//将set中为1的添加进阻塞信号集
 26 
 27         while(1){
 28                 sigpending(&ped);//将未决信号集读到ped集中
 29                 print(&ped);
 30                 sleep(1);
 31         }
 32 }
 33 //进程一开始时,未决信号集全为0,当接收的信号为阻塞信号时未决信号集中对应的位立即翻转为1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值