How to get the signals available in a LINUX system in C

1 Answer

0 votes
#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

*/

 



answered May 28, 2024 by avibootz

Related questions

1 answer 215 views
1 answer 178 views
1 answer 106 views
1 answer 269 views
1 answer 224 views
...