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

void alarm_handler(int signo);
void intr_handler(int signo);
void usr1_handler(int signo);

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

    printf("PID=%ld\n", (long) getpid());

    signal(SIGALRM, alarm_handler);
    signal(SIGINT, intr_handler);
    signal(SIGUSR1, usr1_handler);

    alarm(5);
    if (pause() == -1)
        perror("pause");

    exit(EXIT_SUCCESS);
}

void
alarm_handler(int signo)
{
    printf("Five seconds passed\n");
}

void
intr_handler(int signo)
{
    printf("signal ^C occured\n");
}

void
usr1_handler(int signo)
{
    printf("signal SIGUSR1 caught\n");
}
