信号屏蔽字&信号未决字

#include "io.h"
#include <signal.h>


void sighandler(int signo)
{
    sigset_t newset, oldset;
    sigset_t pendset;
    sigprocmask(SIG_SETMASK, NULL, &oldset);
    int i = 0;
    printf("mask:");
    /*sigpending(&pendset);*/

    if (sigismember(&oldset, signo)) {
        printf("Ctrl+z!\n");
    }

#if 0
    for (; i < 32; i++)
    {
        printf("%d", (oldset.sig[0] >> (31 - i)) & 0x1);
    }
    printf("\n");
#endif
    sigpending(&pendset);
    printf("pend:");

    if (sigismember(&pendset, signo)) {
        printf("Ctrl+z!\n");
#if 0
        for (; i < 32; i++)
        {
            printf("%d", (pendset.sig[0] >> (31 - i)) & 0x1);
        }
        printf("\n");
#endif
        sleep(3);

    }

    int main(int argc, char const * argv[])
    {
        sigset_t set;
        sigemptyset(&set);
        sigaddset(&set, SIGTSTP);
        sigprocmask(SIG_SETMASK, NULL, );
        signal(SIGTSTP, sighandler);
        while (1)sleep(1);
        return 0;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值