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 + -
显示快捷键?