有关alarm和signal的疑问

你好,我看到你有一篇文章是写alarm的使用方法的,里面有一段代码是这样的

void settime(int signum)
{
    printf("begin dingshi\n");
    printf("signum=%d\n",signum);
    alarm(2);
}
int main()
{
    signal(SIGALRM,settime);
    alarm(2);
    while(1)
    {
        pause();
    }
    return 0;
}

你那边程序运行的结果是循环处理,打印begin dingshi和signum=14
可是我的signal函数只捕捉一次函数,第二次alarm时钟一到,程序就自动结束了
我在其他地方找到说signal函数只能捕捉一次,想要循环打印就需要在循环里面加入signal函数进行
循环捕捉,但是我发现你的代码不需要循环使用
想问一下这是什么情况呀?

虽然不知道你这写给谁的,但是还是想告诉你,循环是没有问题的。因为你的settime 中另起了一个alarm。。。。