Chinaunix

标题: apue中对“不改变信号的处理方式就不能确定信号的当前处理方式”该怎么理解? [打印本页]

作者: goingstudy    时间: 2013-06-05 09:52
标题: apue中对“不改变信号的处理方式就不能确定信号的当前处理方式”该怎么理解?
本帖最后由 goingstudy 于 2013-06-05 09:54 编辑

在apue 中信号那节有这么一段
很多捕捉这两个信号的交互程序具有下列形式的代码:

        int sig nt(),sig uit();
        if(signal(SIGINT,SIG GN) !=SIG GN)
        signal(SIGINT,sig nt);
        if(signal(SIGQUIT,SIG GN)!=SIG GN)
        signal(SIGQUIT,sig uit);

  这样处理后,仅当SIGINT和SIGQUIT原先并不忽略,进程才捕捉它们。从这些signal调用中可以看到这种函数的限制:不改变信号的处理方式就不能确定信号的当前处理方式。我们将在本章的稍后部分说明使用sigaction可以确定一个信号的处理方式,而无需改变它。

对这段中的“不改变信号的处理方式就不能确定信号的当前处理方式“ 怎么理解?
作者: goingstudy    时间: 2013-06-05 11:28
ding a 。。。
作者: aweii    时间: 2013-06-05 11:49
这个函数虽然返回了原处理方式,但也改变了现在的处理方式
作者: goingstudy    时间: 2013-06-05 13:49
简单明白,谢谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2