您的位置:首页 > 其它

10_12 sigddset sigdelset 和 sigismember 的实现

2015-12-09 13:35 417 查看
一、源代码:

cat -n 10_12.c

     1  #include <signal.h>

     2  #include <errno.h>

     3

     4  #define SIGBAD(signo) ((signo) <= 0 || (signo) > NSIG)

     5

     6  int sigaddset(sigset_t *set,int signo)

     7  {

     8          if (SIGBAD(signo)){

     9                  errno = EINVAL;

    10                  return -1;

    11          }

    12

    13          *set |= (1 << (signo - 1));

    14          return 0;

    15  }

    16

    17

    18  int sigdelset(sigset_t *set,int signo)

    19  {

    20          if (BADSIG(signo)){

    21                  errno = EINVAL;

    22                  return -1;

    23          }

    24

    25          *set &= ~(1 << (signo -1));

    26          return 0;

    27  }

    28

    29

    30  int sigismember(sigset_t *set,int signo)

    31  {

    32          if (SIGBAD(signo)){

    33                  errno = EINVAL;

    34                  return -1;

    35          }

    36

    37          return (*set & (1 << (signo - 1)) != 0);

    38  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: