51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> C >> 文章正文

signal获取当前的信号处理动作

更新时间:2012-3-29:  来源:51代码网

APUE中有这样一段代码:
void sig_int(int),sig_quit(int);
if(signal(SIGINT,SIG_IGN)!=SIG_IGN)
  signal(SIGINT,sig_int);
if(signal(SIGQUIT,SIG_IGN)!=SIG_IGN)
  signal(SIGQUIT,sig_quit);
这段代码是什么意思?主要是不理解if语句的判断起到什么作用??
这段代码下面有这样一段话:
从signal的这两个调用中也可以看到这种函数的限制:不改变信号的处理方式就不能确定信号的当前处理方式。
这句话也同样不理解。。
signal 没有办法直接获取当前的信号处理动作
只能通过设置一个新的信号处理动作,然后获取返回值的方式得到当前的信号处理动作
那两个if判断表示:
如果当前的信号处理动作不是SIG_IGN,那么设置新的信号处理动作

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |