1 2 3 4 5 6 7 8 9 10 11 12
#include <signal.h> #include <errno.h> int sigismember(const sigset_t *set, int sig) { unsigned s = sig-1; if (s >= 8*sizeof(sigset_t)) { errno = EINVAL; return -1; } return !!(set->__bits[s/8/sizeof *set->__bits] & 1UL<<(s&8*sizeof *set->__bits-1)); }