Copyright (c) 1999, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
#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 required.
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)