美文网首页
POSIX信号处理

POSIX信号处理

作者: 一ccc | 来源:发表于2018-01-04 11:10 被阅读0次

    信号就是告知某个进程发生了某个事件的通知,有时也称为软件中断.
    信号可以:

    • 由一个进程发给另一个进程
    • 由内核发给某个进程
      (1)信号处理函数:只要有特定的信号发生它就被调用.
      信号处理函数由信号值这个单一的整数参数来调用,没有返回值.函数原型:
    void handler(int signo);
    

    (2)可以把某个信号的设定为SIG_IGN来忽略它SIGKILL和SIGSTOP不可以忽略
    (3)把某个信号的设定为SIG_DFL来启动它的默认设置

    由于sigaction函数调用复杂,UNP卷一中将其进行改进,通过signal函数去调用完善它。
    signal函数原型:void (signal(int signo,void(func)(int)))(int);
    typedef简化:typedef void Sigfunc(int);
    变为:Sigfunc *signal(int signo,Sigfunc *func);

    符合POSIX的系统的信号处理为以下几点:
    • 安装信号处理函数后它会一直安装
    • 信号处理函数运行期间,信号是阻塞的
    • unix信号是默认不排队的,一个信号在被阻塞期间产生了一次或多次,那该信号被解阻塞后通常指递交一次
    • 利用sigprocmask函数选择性地阻塞或解阻塞一组信号是可能的。

    相关文章

      网友评论

          本文标题:POSIX信号处理

          本文链接:https://www.haomeiwen.com/subject/uskhnxtx.html