alarm.c

来自「unix环境高级编程的源代码」· C语言 代码 · 共 36 行

C
36
字号
#include    "lprps.h"

static void
sig_alrm(int signo)            /* SIGALRM handler */
{
    alrm_flag = 1;
    return;
}

void
handle_alrm(void)
{
    log_ret("printer not responding");
    sleep(60);        /* it will take at least this long to warm up */

    exit(EXIT_REPRINT);
}

void        /* Establish the signal handler and set the alarm. */
set_alrm(unsigned int nsec)
{
    alrm_flag = 0;
    if (signal_intr(SIGALRM, sig_alrm) == SIG_ERR)
        log_sys("set_alrm: signal_intr error");
    alarm(nsec);
}

void
clear_alrm(void)
{
    alarm(0);
    if (signal(SIGALRM, SIG_IGN) == SIG_ERR)
        log_sys("clear_alrm: signal error");
    alrm_flag = 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?