sigset.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 68 行
C
68 行
#include <signal.h>#include <errno.h>/* * sigsets are 32-bit longs. if the 2<<(i-1) bit is on, * the signal #define'd as i in signal.h is inluded. */static sigset_t stdsigs = SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGABRT|SIGFPE|SIGKILL| SIGSEGV|SIGPIPE|SIGALRM|SIGTERM|SIGUSR1|SIGUSR2;#define BITSIG(s) (2<<(s))intsigemptyset(sigset_t *set){ *set = 0; return 0;}intsigfillset(sigset_t *set){ *set = stdsigs; return 0;}intsigaddset(sigset_t *set, int signo){ int b; b = BITSIG(signo); if(!(b&stdsigs)){ errno = EINVAL; return -1; } *set |= b; return 0;}intsigdelset(sigset_t *set, int signo){ int b; b = BITSIG(signo); if(!(b&stdsigs)){ errno = EINVAL; return -1; } *set &= ~b; return 0;}intsigismember(sigset_t *set, int signo){ int b; b = BITSIG(signo); if(!(b&stdsigs)){ errno = EINVAL; return -1; } return (b&*set)? 1 : 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?