#include <stdio.h>
#include <signal.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
// signals may vary according to platform
void upcase(char *s) {
while (*s) {
*s = toupper(*s);
s++;
}
}
int main(void)
{
int _signal;
for (_signal = 1; _signal < 32; _signal++) {
char *str = strdup(strsignal(_signal));
if (!str) {
return -1;
}
upcase(str);
printf("%2d -> %s\n", _signal, str);
free(str);
}
return 0;
}
/*
run:
1 -> HANGUP
2 -> INTERRUPT
3 -> QUIT
4 -> ILLEGAL INSTRUCTION
5 -> TRACE/BREAKPOINT TRAP
6 -> ABORTED
7 -> BUS ERROR
8 -> FLOATING POINT EXCEPTION
9 -> KILLED
10 -> USER DEFINED SIGNAL 1
11 -> SEGMENTATION FAULT
12 -> USER DEFINED SIGNAL 2
13 -> BROKEN PIPE
14 -> ALARM CLOCK
15 -> TERMINATED
16 -> STACK FAULT
17 -> CHILD EXITED
18 -> CONTINUED
19 -> STOPPED (SIGNAL)
20 -> STOPPED
21 -> STOPPED (TTY INPUT)
22 -> STOPPED (TTY OUTPUT)
23 -> URGENT I/O CONDITION
24 -> CPU TIME LIMIT EXCEEDED
25 -> FILE SIZE LIMIT EXCEEDED
26 -> VIRTUAL TIMER EXPIRED
27 -> PROFILING TIMER EXPIRED
28 -> WINDOW CHANGED
29 -> I/O POSSIBLE
30 -> POWER FAILURE
31 -> BAD SYSTEM CALL
*/