|
#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;
|
|
}
|