• 信号处理


    一. 信号是一种软中断,

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

    二.常见的信号

      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)
      功能:获取未决状态的信号,可以在解除信号屏蔽前预先查找有那写未决状态的信号

  • 相关阅读:
    【JavaScript】JavaScript中的Timer是怎么工作的( setTimeout,setInterval)
    【JavaScript】一些注意点
    【Java】Checked、Unchecked Exception
    【Java】sleep和wait的区别
    【314】putty 自动登录
    【313】python 中 print 函数用法总结
    【312】◀▶ arcpy 常用函数说明
    【311】Python 构建 ArcMap 标注表达式
    【310】◀▶ Python 日期和时间
    java从mysql导出数据例子
  • 原文地址:https://www.cnblogs.com/gumpzlc/p/9368333.html
Copyright © 2020-2023  润新知