Project

General

Profile

Bug #242 ยป showsig.c

corecode, 07/15/2006 12:47 PM

 
#include <err.h>
#include <signal.h>
#include <stdio.h>

const char *signames[] = {
"NULL", "HUP", "INT", "QUIT", "ILL", "TRAP", "IOT", /* 1 - 6 */
"EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", /* 7 - 12 */
"PIPE", "ALRM", "TERM", "URG", "STOP", "TSTP", /* 13 - 18 */
"CONT", "CHLD", "TTIN", "TTOU", "IO", "XCPU", /* 19 - 24 */
"XFSZ", "VTALRM", "PROF", "WINCH", "29", "USR1", /* 25 - 30 */
"USR2", NULL, /* 31 - 32 */
};

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

for (i = 1; i < 32; i++) {
if (sigaction(i, NULL, &sa) != 0)
err(1, "sigaction");
printf("SIG%s = ", signames[i]);
if (sa.sa_handler == SIG_DFL)
printf("SIG_DFL\n");
else if (sa.sa_handler == SIG_IGN)
printf("SIG_IGN\n");
else
printf("%p", sa.sa_handler); /* XXX oy? */
}

return 0;
}
    (1-1/1)