关于进程通信-信号三种处理方式的疑问
匿名2023/07/31 19:49:14提问
    lecture22studentunanswered
318

MOOC视频中向老师讲解的三种处理方式:

捕获:执行进程指定的信号处理函数。

忽略:执行操作系统指定的缺省处理,如进程终止、进程挂起。

屏蔽:禁止进程接收和处理信号,举例为windows登录操作时,ctrl+c无法中断登录操作。

为了更深入的理解这三种处理方式,我查阅了互联网资料,进一步阅读了《Linux内核源码》中关于signal的章节,得出以下结论:

信号三种处理方式基本一致:

一、用户定义信号处理函数,当信号发生时,捕获信号,执行用户指定的处理函数;

二、执行内核默认的信号处理程序;

三、对进程不构成影响,进程忽略次信号,执行进程自己的行为。

第一条对应的MOOC视频中讲的“捕获”;第二条对应“忽略”;第三条对应“屏蔽”。

《Linux内核源码》中把第三条的功能定义为“忽略该信号”。原文如下:

与MOOC中对第三条的定义功能相同,第二条的定义名字相近,容易产生混淆,针对第二条和第三条的定义是否存在统一的定义方式?不至于在看到不同版本操作解释的时候,在名字上饶较大一圈。

回答(0
    推荐问答
      Simple Empty
      暂无数据