#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>

void alarm_handler(int signo);

int
main(int argc, char *argv[])
{
    struct itimerval delay;
    int ret;

    signal(SIGALRM, alarm_handler);

    delay.it_value.tv_sec = 5;
    delay.it_value.tv_usec = 0;
    delay.it_interval.tv_sec = 1;
    delay.it_interval.tv_usec = 0;

    ret = setitimer(ITIMER_REAL, &delay, NULL);
    if (ret) {
        perror("setitimer");
        exit(EXIT_FAILURE);
    }

    while (1)
        pause();

    exit(EXIT_SUCCESS);
}

void
alarm_handler(int signo)
{
    printf("Timer hit!\n");
}
