1.信号集
  每个进程都有一个信号屏蔽字,它规定了当前要阻塞递送到该进程的信号集。对于每种可能的信号,该屏蔽字中都有一bit位与之对应。信号数可能会超过一个整型数所包含的二进制位数,因此POSIX.1定义了一个新数据类型sigset_t,它包括一个信号集
  int sigempytset(sigset_t *set)  初始化set指向的信号集,清除其中的所有信号
  int sigfillset(sigset_t *set)   初始化set指向的信号集,其中包含所有信号
  int sigaddset(sigset_t *set,int signo);//向set中添加一个signo信号
  int sigdelset(sigset_t *set,int signo);
  以上均成功返回0 出错返回-1
 
  测试某个信号是否被设置在信号集中
  int sigismember(sigset_t *set,int signo) 为真返回1 为假返回0   出错返回-1

2.sigprocmask ()   函数检测或更改进程的屏蔽字
  int sigprocmask(int flag,const sigset_t *set,sigset_t *oldset);
  若set非空指针,则按照flag方式进行设置新的信号屏蔽字
SIG_BLOCK : 取当前进程的屏蔽字与set的并集   <不影响其它基础上 设置屏蔽>
SIG_UNBLOCK:取当前进程的屏蔽字与set的补集 的交集  <不影响其它基础上  解除屏蔽>
SIG_SETMASK:直接设置

3.int sigsuspend(sigset_t *mask)
  把进程信号屏蔽字设成为mask并原子的阻塞等侍一个某信号从捕捉函数返回

4.int sigaction(int how,const sigset_t *act,sigset_t *oldact );
   改变一个信号的行为

5.int raise(int signo);  给自身发送一个信号
   int kill(pid_t pid,int signo)
   
   .pid > 0  将信号发送给进程ID为pid的进程。
   .pid == 0 将信号发送给与发送信号进程同一组的进程,而且发送进程有许可权向其发送信号的权限。
             这里用的术语“所有进程”不包括实现定义的系统进程集(包括内核进程以及init)
   .pid < 0  将信号发送给其进程组gid等于pid绝对值的进程,而且发送进程有许可权向其发送信号的权限
   .pid ==-1 将信号发送给发送进程有权限对其发送信号的系统上的所有进程(不包括系统进程集)

signal——信号集的更多相关文章

  1. signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数

    信号是与一定的进程相联系的.也就是说,一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如,一个进程可以忽略某些信号而只处理其他一些信号:另外,一个进程还可以选择如何处理信号.总之,这些总与特定 ...

  2. 《UNIX环境高级编程》笔记--信号集

    1.信号集基本操作 我们需要有一个能表示多个信号--信号集(signal set)的数据类型.POSIX.1定义了数据类型sigset_t以包含一个信号 集,并且定义了一下五个处理信号处理信号集函数. ...

  3. PCB信号集

    每一个进程都有一个pcb进程控制块,用来控制进程的信息,同时信号在pcb中有两个队列去维护他,一个是未决信号集,每一位对应一个信号的状态,0,1,1表示未决态,另一个是信号屏蔽字(阻塞信号集),也就0 ...

  4. 从实战出发,谈谈 nginx 信号集

    前言 之前工作时候,一台引流测试机器的一个 ngx_lua 服务突然出现了一些 HTTP/500 响应,从错误日志打印的堆栈来看,是不久前新发布的版本里添加的一个 Lua table 不存在,而有代码 ...

  5. LINUX signal 信号

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  6. [Linux]返回被阻塞的信号集

    一.概述 在另一篇实例说到,进程可以屏蔽它不想接收的信号集. 事实上这些被屏蔽的信号只是阻塞在内核的进程表中,因为他们不能递送给进程,所以状态是未决的(pending). 利用sigpending函数 ...

  7. Linux信号-信号集&信号屏蔽字&捕捉信号【转】

    转自:https://blog.csdn.net/Lycorisradiata__/article/details/80096203 一. 阻塞信号 1. 信号的常见其他概念    实际执行信号的处理 ...

  8. linux 信号处理 三 (信号集的使用)

    sigprocmask系统调用 使用条件: 1.有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数.这种情况是通过阻塞信号实现的. 2. ...

  9. linux系统编程之信号(五):信号集操作函数,信号阻塞与未决

    一,信号集及相关操作函数 信号集被定义为一种数据类型: typedef struct { unsigned long sig[_NSIG_WORDS]: } sigset_t 信号集用来描述信号的集合 ...

随机推荐

  1. google docker镜像下载

    https://anjia0532.github.io/2017/11/15/gcr-io-image-mirror/

  2. grid布局——从入门到放弃

    基本知识 CSS grid 布局有两个核心组成部分:wrapper(网格容器,父元素)和items(网格项,子元素). 基本属性 属性 含义 display: grid 网格布局(父元素设置) gri ...

  3. 【每日Scrum】第五天冲刺

    一.计划会议内容 仍然在解决数据库问题 二.任务看板 三.scrum讨论照片 四.产品的状态 无 五.任务燃尽图  

  4. 小程序转义字符去空格&nbsp;

    <text ].specInfo}}</text> 在微信小程序开发过程中,有时候会用到常用的一些特殊字符如:‘<’.‘>’.‘&’.‘空格’等,微信小程序同样支 ...

  5. UML-架构分析-阶段

    初始阶段:架构概念验证原型--->确定其可行性 细化阶段:因素表.技术备忘录.SAD(软件架构文档) 移交阶段:可能会修改SAD->确保与最终部署版本的一致性 后续进化循环:重温架构性因素 ...

  6. Java多人聊天室第一版

    package cn.zhang.chat; import java.io.BufferedReader; import java.io.PrintWriter; /** * 所有用户均有的信息,单独 ...

  7. Python 安装modules问题及import问题

    >>>modules问题 在学习Python的数据可视化时,安装了matplotlib,在安装完成后还特意在终端测试了一下,结果显示能正常import 但是在sublime Text ...

  8. java网络考试系统的设计与实现 jsp 源码

    开发环境: Windows操作系统开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库 项目简介: 网络考试系统主要用于实现高校在线考试,基本功能包括:自动 ...

  9. 201512-1 数位之和 Java

    思路: mod 10获取最低位,除以10去掉最低位 import java.util.Scanner; public class Main { public static void main(Stri ...

  10. EL表达式和JSTL(二)——BeanUtils工具

    BeanUtils工具 大对数人习惯使用JavaBean的get和set方法来获取和设置JavaBean的属性,但是在Java EE编程的过程中,会经常从配置文件中读取数据,但是从配置文件中读取的数据 ...