linux可靠信号和非可靠信号测试样例

  • 不可靠信号(在执行自定义函数其间会丢失同类信号)
  • 可靠信号(在执行自定义函数其间不会丢失同类信号)

不可靠信号用一次以后,就恢复其默认处理吗?

至少在ubuntu 12.04上,已经是一次绑定,永远使用,除非显性再次绑定默认行为。

测试方式:

1)不可靠信号(1-31)程序(关键代码:signal( SIGINT, sigintctl) ;)执行后,sleep的2s内按ctrl+c N次,只会看到1次信号处理的输出;

1)可靠信号(34-64)程序执行后(关键代码:signal( SIGRTMIN, sigintctl) ;)执行后,sleep的2s内kill -34 N次,会看到N次信号处理的输出。

参考代码:

#include <signal.h>
void sigintctl(int signum)

{   printf( "handle begin.
");
    printf( "receive signum %d 
" , signum) ;
    sleep(2);
    printf( "handle end.
");
}
int main()
{
    // signal( SIGINT, sigintctl) ;
    signal( SIGRTMIN, sigintctl) ;
    while(getchar() != "q") ;
    return 0
}
原文地址:https://www.cnblogs.com/shenwenkai/p/5076927.html