首页 > 编程语言 > 详细

linux c++(信号集处理函数一)

时间:2021-05-06 14:51:23      阅读:14      评论:0      收藏:0      [点我收藏+]

信号集处理函数一

  • 清空信号集
    • int sigemptyset(sigset_t *set);
  • 填充信号集
    • 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);
    • 返回1代表signum在集合中

信号集处理函数二

  • 设置阻塞信号集,或者解除阻塞
    • how[SIG_BLOCK 设置阻塞,SIG_UNBLOCK 解除阻塞,SIG_SETMASK 设置set为新的阻塞信号集]
    • set 传入的信号集
    • oldset 旧的信号集,传出
    • int sigprocmask(int how,const sigset_t *set,sigset_t *oldset);
  • 获取未决信号集
    • set 传出参数,当前的未决信号集
    • int sigpending(sigset_t *set);
int main()
{
    sigset_t pend,sigproc;
    //设置阻塞信号,等待按键产生信号
    sigemptyset(&sigproc); //先清空
    sigaddset(&sigproc,SIGINT);
    sigaddset(&sigproc,SIGQUIT);
    sigaddset(&sigproc,SIGKILL);
    //设置阻塞信号集
    sigprocmask(SIG_BLOCK,&sigproc,NULL);

    //循环取未决信号集,打印
    while(1)
    {   
        sigpending(&pend);
        int i= 1;
        for (i = 0; i < 32; ++i) {
            if (sigismember(&pend,i) == 1) {
                printf("1");
            }else{
                printf("0");
            }   
        }   
        printf("\n");
        sleep(1);
    }   
    return 0;
}

linux c++(信号集处理函数一)

原文:https://www.cnblogs.com/lodger47/p/14733756.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!