zoukankan      html  css  js  c++  java
  • 信号补充

    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    #include <unistd.h>
    #include <string.h>
    #include <strings.h>
    #include <errno.h>
    
    #include <sys/stat.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <fcntl.h>
    #include <signal.h>
    
    void doSig(int num)
    {
        printf("i am doSig
    ");
        printf("%d
    ",num);
    }
    
    void printSigset(const sigset_t *s)
    {
        for(int i = 1;i < 32;i++)
        {
            if(sigismember(s,i) == 1)
                printf("1");
            else
                printf("0");
        }    
        printf("
    ");
    }
    
    int main(int argc, char **argv)
    {
        sigset_t p;    
        printf("sizeof sigset_t = %d
    ",sizeof(sigset_t));
        
        sigemptyset(&p);
        sigaddset(&p,SIGQUIT);// ctrl + z
        sigprocmask(SIG_BLOCK,&p,NULL);// 设置阻塞信号集
    
        struct sigaction s;
        s.sa_handler = doSig;
        s.sa_flags = 0;
        sigemptyset(&s.sa_mask); // sa_mask 时一个临时的值,执行完handler函数之后,就不起作用了 mask |= sa_mask
    
        sigaction(SIGINT,&s,NULL);
    
        while(1)
        {
            sleep(1);
            sigpending(&p);    
            printSigset(&p);
        }
        
        return 0;
    }
    sizeof sigset_t = 128
    0000000000000000000000000000000
    0000000000000000000000000000000
    0000000000000000000000000000000
    0000000000000000000000000000000
    0000000000000000000000000000000
    ^0010000000000000000000000000000
    0010000000000000000000000000000
    0010000000000000000000000000000
    0010000000000000000000000000000
    0010000000000000000000000000000
    ^^0010000000000000000000000000000
    0010000000000000000000000000000
    0010000000000000000000000000000
    0010000000000000000000000000000
    ^Ci am doSig
    2
    0010000000000000000000000000000
    0010000000000000000000000000000
    0010000000000000000000000000000
    0010000000000000000000000000000

  • 相关阅读:
    GTC China 2016观感
    关于OpenGL的绘制上下文
    Voreen(三) 光线投射参数介绍
    分享一些DICOM数据下载网站
    Voreen (二) 入点出点计算
    Voreen (一) GPU Raycast主流程
    GPU渲染和GDI
    程序媛壮志雄心尝试装机,命运多舛壮志未酬失败告终~
    安装Newton版Glance
    安装Newton版Swift,配合keystone认证
  • 原文地址:https://www.cnblogs.com/xiangtingshen/p/11954311.html
Copyright © 2011-2022 走看看