为什么我在sigaction之前执行了sigemptyset,但有时SIGALRM被阻止了

时间:2016-07-01 07:00:34

标签: signals

我已经执行了“sigemptyset'在' sigaction'之前,但SIGALRM被阻止。

但如果我执行' sigprocmask'要取消阻止SIGALRM,SIGALRM不会被阻止。

代码部分如下:

struct sigaction sa;
memset( & sa, 0, sizeof(sa));
sa.sa_handler = sigpipe_handler;
if (sigemptyset( & sa.sa_mask) < 0) {
  printf("sigemptyset fail! errno=%d, error info<%s>.\n", errno, strerror(errno));
}#
ifdef SA_INTERRUPT sa.sa_flags |= SA_INTERRUPT;#
endif
if (sigaction(signum, & sa, NULL) < 0) {
  printf("sigaction fail! errno=%d, error info<%s>.\n", errno, strerror(errno));
}–

1 个答案:

答案 0 :(得分:0)

似乎SIGALRM默认屏蔽?