Signal number to name?

后端 未结 3 539
长情又很酷
长情又很酷 2021-02-03 21:34

How can I quickly get signal name from its number? There is strsignal(), but I just want the name, e.g. SIGUSR1

In other words, if we have macros like

3条回答
  •  甜味超标
    2021-02-03 21:56

    May be, you can declare a global array, like this

    char *signame[]={"INVALID", "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGTRAP", "SIGABRT", "SIGBUS", "SIGFPE", "SIGKILL", "SIGUSR1", "SIGSEGV", "SIGUSR2", "SIGPIPE", "SIGALRM", "SIGTERM", "SIGSTKFLT", "SIGCHLD", "SIGCONT", "SIGSTOP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGXCPU", "SIGXFSZ", "SIGVTALRM", "SIGPROF", "SIGWINCH", "SIGPOLL", "SIGPWR", "SIGSYS", NULL};
    

    and can use it to print signal name in signal handler, like

    void sig_handler(int signum){
         printf("Received signal : %s\n", signame[signum]);
    }
    

提交回复
热议问题