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

void handler(int sig, siginfo_t *siginfo, void *ucontext);

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

    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_SIGINFO;
    sa.sa_sigaction = handler;

    for (i = 1; i < NSIG; i++)
        sigaction(i, &sa, NULL);

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

    while (1)
        pause();

    exit(EXIT_SUCCESS);
}

void
handler(int sig, siginfo_t *siginfo, void *ucontext)
{
    psiginfo(siginfo, "about received signal");
}

