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

  • 相关阅读:
    jmeter-获取数据库中的数据
    jmeter常见报错汇总
    学习目录
    Spring+Spring Security+JSTL实现的表单登陆的例子
    Spring+Spring Security+Maven 实现的一个Hello World例子
    第六章:位置匹配
    第五章:重复匹配
    第四章:使用元字符
    第三章:匹配一组字符
    第二章:匹配单个字符
  • 原文地址:https://www.cnblogs.com/xiangtingshen/p/11954311.html
Copyright © 2011-2022 走看看