Linux信号(signal、sigaction) 机制分析

来源:互联网 发布:美国非农数据何时公布 编辑:程序博客网 时间:2024/04/29 13:56

信号接收最终选用此机制:

   struct sigaction act, oldact;

   act.sa_handler = sig_handler;
   act.sa_flags = 0;
   sigemptyset(&act.sa_mask);
   sigaction(SIGRTMIN+8, &act, &oldact);
   sigaction(SIGRTMIN+9, &act, &oldact);

 

对于目前linux的两个信号安装函数:signal()及sigaction()来说,它们都不能把SIGRTMIN以前的信号变成可靠信号(都不支持排队,仍有可能丢失,仍然是不可靠信号),而且对SIGRTMIN以后的信号都支持排队。这两个函数的最大区别在于,经过sigaction安装的信号都能传递信息给信号处理函数,而经过signal安装的信号不能向信号处理函数传递信息。对于信号发送函数来说也是一样的。信号值位于SIGRTMIN和SIGRTMAX之间的信号都是可靠信号,可靠信号克服了信号可能丢失的问题。

参考及有用的文档:

               http://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html  (2.1、可靠信号与不可靠信号)

               http://blog.chinaunix.net/uid-20583479-id-1919898.html               (部分代码)

               http://blog.chinaunix.net/uid-1877180-id-3011232.html                 (参考)

               http://blog.chinaunix.net/uid-25100840-id-307217.html?bsh_bid=235144559   (有用)

 

 

0 0
原创粉丝点击