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

📄 sigset.c

📁 Newlib 嵌入式 C库 标准实现代码
💻 C
字号:
/* sigset.c - signal set manipulation functions *//* Copyright 2002, Red Hat Inc. *//* Note: these are currently grouped together in one file so that         it will override the default version in the libc/unix          directory which has grouped all functions in one file. *//* sigaddset function */#include <signal.h>#include <bits/sigset.h>#include <errno.h>#include <string.h>#include <machine/weakalias.h>intsigaddset (sigset_t *set, const int signo){  int index, mask;  __sigset_t *st = (__sigset_t *)set;  if (signo > NSIG)    {      errno = EINVAL;      return -1;    }  index = (signo - 1) / (8 * sizeof(long));  mask = 1 << ((signo - 1) % (8 * sizeof(long)));  st->__val[index] |= mask;  return 0;}/* sigdelset function */intsigdelset (sigset_t *set, const int signo){  int index, mask;  __sigset_t *st = (__sigset_t *)set;  if (signo > NSIG)    {      errno = EINVAL;      return -1;    }  index = (signo - 1) / (8 * sizeof(long));  mask = 1 << ((signo - 1) % (8 * sizeof(long)));  st->__val[index] &= ~mask;  return 0;}/* sigemptyset function */intsigemptyset (sigset_t *set){  int size = NSIG / 8;  __sigset_t *st = (__sigset_t *)set;  memset (st->__val, 0, size);  return 0;}/* sigfillset function */intsigfillset (sigset_t *set){  int size = NSIG / 8;  __sigset_t *st = (__sigset_t *)set;  memset (st->__val, 0xff, size);  return 0;}/* sigismember function */intsigismember (const sigset_t *set, int signo){  int index, mask;  __sigset_t *st = (__sigset_t *)set;  if (signo > NSIG)    {      errno = EINVAL;      return -1;    }  index = (signo - 1) / (8 * sizeof(long));  mask = 1 << ((signo - 1) % (8 * sizeof(long)));  return (st->__val[index] & mask) != 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -