10_14.c打印signal mask 的函數。

其實現方式很簡單,就是用sigismember函數與每個信號進行比較。

一、源代碼:

:cat -n 10_14.c
     1  #include "apue.h"
     2  #include <errno.h>
     3
     4  void pr_mask(const char *str)
     5  {
     6          int saved_errno;
     7          sigset_t sigset;
     8
     9          saved_errno = errno;
    10          if (sigpromask(0,NULL,&setset) < 0){
    11                  err_ret("sigpromask error");
    12          }
    13          else{
    14                  printf("%s",str);
    15                  if(sigismemebr(&sigset,SIGINT))
    16                          printf(" SIGINT");
    17                  if(sigismember(&sigset,SIGQUIT))
    18                          printf(" SIGQUIT");
    19                  if(sigismember(&sigset,SIGUSR1))
    20                          printf(" SIGALRM");
    21
    22
    23                  printf("\n");
    24          }
    25          errno = saved_errno;
    26  }





注意保存errno的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章