char *Signals[] = {
"SIGABRT", /* 1 Abnormal termination */
"SIGFPE", /* 2 Erroneous arithmetic operation */
"SIGILL", /* 3 Invalid hardware instruction */
"SIGINT", /* 4 Interactive attention signal */
"SIGSEGV", /* 5 Invalid memory reference */
"SIGTERM", /* 6 Termination signal */
"SIGUSR1", /* 7 Application defined signal 1 */
"SIGUSR2", /* 8 Application defined signal 2 */
"SIGIO", /* 9 I/O possible, or completed */
"SIGALL", /* 10 All signals */
"SIGOTHER", /* 11 ILE C/400 signal */
"SIGKILL", /* 12 Termination signal (cannot be caught,ignored) */
"SIGPIPE", /* 13 Write on a pipe with no readers */
"SIGALRM", /* 14 Timeout signal */
"SIGHUP", /* 15 Hangup detected on controlling terminal */
"SIGQUIT", /* 16 Interactive termination signal */
"SIGSTOP", /* 17 Stop signal (cannot be caught or ignored) */
"SIGTSTP", /* 18 Interactive stop signal */
"SIGCONT", /* 19 Continue if stopped */
"SIGCHLD", /* 20 Child process terminated or stopped */
"SIGTTIN", /* 21 Background read from controlling terminal */
Figure 302. Sample WSG Server Logon Exit Program (Part 38 of 50)
"SIGTTOU", /* 22 Background write to controlling terminal */
"SIGURG", /* 23 High bandwidth data is available at a socket */
"SIGPOLL", /* 24 Pollable event */
"SIG25", /* 25 Not defined */
"SIG26", /* 26 Not defined */
"SIG27", /* 27 Not defined */
"SIG28", /* 28 Not defined */
"SIG29", /* 29 Not defined */
"SIG30", /* 30 Not defined */
"SIG31", /* 31 Not defined */
"SIGBUS", /* 32 Bus error (specification exception) */
"SIGDANGER", /* 33 system crash imminent */
"SIGPRE", /* 34 programming exception */
"SIGSYS", /* 35 Bad system call */
"SIGTRAP", /* 36 Trace/Breakpoint trap */
"SIGPROF", /* 37 Profiling timer expired */
"SIGVTALRM", /* 38 Virtual timer expired */
"SIGXCPU", /* 39 CPU time limit exceeded */
"SIGXFSZ" /* 40 File size limit exceeded */
};
record("handler: Caught signal %s\n", Signals[iSignal-1]);
Figure 302. Sample WSG Server Logon Exit Program (Part 39 of 50)
Appendix E. TCP/IP Application Exit Points and Programs 589