#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include <err.h>
#include <errno.h>
#include "../lpi.h"     // for getSigname()
                        // defined in ../defs.c

void sig_handler(int signo);

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

    for (i = 1; i < NSIG; i++) {
        if (i == SIGCHLD || i == SIGTERM)
            continue;

        // ignore errors for SITKILL(9), SIGSTOP(19), 32, 33
        signal(i, sig_handler);
    }
    printf("PID=%ld waits for signal\n", (long) getpid());
    pause();
    printf("exiting...\n");
    exit(EXIT_FAILURE);
}

void
sig_handler(int signo)
{
    printf("caught signal %s\n", getSigname(signo));
}
