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

  • 相关阅读:
    约瑟夫环问题
    String常用的工具类
    java 中的==和equals的深度解析
    Intellij IDEA的一些常用设置和使用小技巧
    jvm内存模型概述
    springcloud开篇
    oracle生成path的sql语句
    oracle表空间异常大
    springboot2集成activiti出错
    策略模式2
  • 原文地址:https://www.cnblogs.com/xiangtingshen/p/11954311.html
Copyright © 2011-2022 走看看