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

void sig_handler(int signo);

int
main(int argc, char *argv[])
{
    time_t t0;
    int ret;

    signal(SIGALRM, sig_handler);
    t0 = time(NULL);

    printf("call alarm(5)\n");
    alarm(5);

    printf("call sleep(3)\n");
    ret = sleep(3);

    printf("sleep(3) returned %d\n", ret);
    printf("difftime(t1, t0)=%.0f\n", difftime(time(NULL), t0));

    pause();
    exit(EXIT_SUCCESS);
}

void
sig_handler(int signo)
{
    if (signo == SIGALRM)
        printf("SIGALRM caught\n");
}
