zoukankan      html  css  js  c++  java
  • 信号处理

    一. 信号是一种软中断,

      中断分为硬中端和软中断,软中断是来自其他程序的中断,硬中断是来自硬件设备的中断

    二.常见的信号

      SIGINT,SIGCONT,SIGALRM,SIGSTOP,SIGTSTP,SIGABRT,SIGKILL,SIGQUIT,SIGCHLD

    三.信号分为不可靠信号和可靠信号

      编号小于34的是不可靠信号,不支持排队,无论发送多少信号,程序只执行一次,信号会丢失

      编号大于34小于64属于可靠信号,支持排队,排队等候处理

      无论是可靠信号还是不可靠信号,都通过kill发送信号

    四.信号的捕获与处理

      通过signal函数进行注册,函数只执行一次,如果想一直处理,可以在函数结束时,再次申请注册signal

       

    五.子进程信号的处理

      通过fork创建的子进程是跟父进程一样的信号处理方式

      但是vfork不一样,子进程与父进程不一样的信号处理方式

    六.

      sleep pause,alarm

    七.

      信号集与信号屏蔽
      什么是信号集:信号的集合sigset_t,由128个二进制组成,每一个二进制
      代表一个集合

      为什么要设置进程信号屏蔽:当执行一些敏感操作时不希望被一些信号打扰,但有不希望
      信号丢失(忽略),可以先吧信号屏蔽了让信号处于未决状态(信号一惊产生但是内核还没法给相应的进程)
      等把事情处理完再解除屏蔽,未决的信号就会达到西施再处理,忽略,终止

      int sigpending(sigset_t *set)
      功能:获取未决状态的信号,可以在解除信号屏蔽前预先查找有那写未决状态的信号

  • 相关阅读:
    C# 窗体(登录界面)
    PHP中include与require的特点和区别说明
    PHP面对对象7大原则
    PHP设计模式 单例模式与工厂模式
    PHP面向对象总结 及 静态 抽象 接口
    PHP面向对象解析
    php常用函数整理
    PHP基础(二) 1、随机数和时间 2、字符串函数
    PHP基础(一) 数组
    php 数据库的增删改查
  • 原文地址:https://www.cnblogs.com/gumpzlc/p/9368333.html
Copyright © 2011-2022 走看看