#include "apue.h"
#include
void
pr_mask(const char *str)
{
sigset_t sigset;
int errno_save;
errno_save = errno; /* we can be called by signal handlers */
if (sigprocmask(0, NULL, &sigset) < 0)
err_sys("sigprocmask error");
printf("%s", str);
if (sigismember(&sigset, SIGINT)) printf("SIGINT ");
if (sigismember(&sigset, SIGQUIT)) printf("SIGQUIT ");
if (sigismember(&sigset, SIGUSR1)) printf("SIGUSR1 ");
if (sigismember(&sigset, SIGALRM)) printf("SIGALRM ");
/* remaining signals can go here */
printf("\n");
errno = errno_save;
}
重写上边程序,要求能处理所有信号量,每次循环处理当前信号屏蔽字中的一个信号量(并不是对每一个可能的信号量都循环一次)。
于 2013-07-12 13:52:44发表:
顶!
yuemotu 于 2013-07-12 10:59:20发表:
这个题什么意思呀?思路呢?