4 #if (SIGHUP == 1) && (SIGINT == 2) && (SIGQUIT == 3) && (SIGILL == 4) \
5 && (SIGTRAP == 5) && (SIGABRT == 6) && (SIGBUS == 7) && (SIGFPE == 8) \
6 && (SIGKILL == 9) && (SIGUSR1 == 10) && (SIGSEGV == 11) && (SIGUSR2 == 12) \
7 && (SIGPIPE == 13) && (SIGALRM == 14) && (SIGTERM == 15) && (SIGSTKFLT == 16) \
8 && (SIGCHLD == 17) && (SIGCONT == 18) && (SIGSTOP == 19) && (SIGTSTP == 20) \
9 && (SIGTTIN == 21) && (SIGTTOU == 22) && (SIGURG == 23) && (SIGXCPU == 24) \
10 && (SIGXFSZ == 25) && (SIGVTALRM == 26) && (SIGPROF == 27) && (SIGWINCH == 28) \
11 && (SIGPOLL == 29) && (SIGPWR == 30) && (SIGSYS == 31)
17 static const char map
[] = {
51 #define sigmap(x) ((unsigned)(x) >= sizeof map ? 0 : map[(unsigned)(x)])
55 static const char strings
[] =
60 "Illegal instruction\0"
61 "Trace/breakpoint trap\0"
64 "Floating point exception\0"
66 "User defined signal 1\0"
67 "Segmentation fault\0"
68 "User defined signal 2\0"
77 "Stopped (tty input)\0"
78 "Stopped (tty output)\0"
79 "Urgent I/O condition\0"
80 "CPU time limit exceeded\0"
81 "File size limit exceeded\0"
82 "Virtual timer expired\0"
83 "Profiling timer expired\0"
89 char *strsignal(int signum
)
91 char *s
= (char *)strings
;
93 signum
= sigmap(signum
);
94 if ((unsigned)signum
- 1 > 31) signum
= 0;
96 for (; signum
--; s
++) for (; *s
; s
++);