STR2SIG(3C) Standard C Library Functions STR2SIG(3C)


str2sig, sig2str - translation between signal name and signal number


#include <signal.h>

int str2sig(const char *str, int *signum);

int sig2str(int signum, char *str);


The str2sig() function translates the signal name str to a signal number,
and stores that result in the location referenced by signum. The name in
str can be either the symbol for that signal, without the "SIG" prefix,
or a decimal number. All the signal symbols defined in <sys/signal.h>
are recognized. This means that both "CLD" and "CHLD" are recognized and
return the same signal number, as do both "POLL" and "IO". For access to
the signals in the range SIGRTMIN to SIGRTMAX, the first four signals
match the strings "RTMIN", "RTMIN+1", "RTMIN+2", and "RTMIN+3" and the
last four match the strings "RTMAX-3", "RTMAX-2", "RTMAX-1", and "RTMAX".

The sig2str() function translates the signal number signum to the symbol
for that signal, without the "SIG" prefix, and stores that symbol at the
location specified by str. The storage referenced by str should be large
enough to hold the symbol and a terminating null byte. The symbol
SIG2STR_MAX defined by <signal.h> gives the maximum size in bytes


The str2sig() function returns 0 if it recognizes the signal name
specified in str; otherwise, it returns -1.

The sig2str() function returns 0 if the value signum corresponds to a
valid signal number; otherwise, it returns -1.


Example 1: A sample program using the str2sig() function.

int i;
char buf[SIG2STR_MAX]; /*storage for symbol */

str2sig("KILL",&i); /*stores 9 in i */
str2sig("9", &i); /* stores 9 in i */
sig2str(SIGKILL,buf); /* stores "KILL" in buf */
sig2str(9,buf); /* stores "KILL" in buf */


kill(1), strsignal(3C)

October 7, 1999 STR2SIG(3C)