⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sigset.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -