NAME
psignal
,
strsignal
, strsignal_r
,
sys_siglist
, sys_signame
— system signal
messages
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include
<signal.h>
void
psignal
(unsigned
sig, const char
*s);
extern const char * const sys_siglist[];
extern const char * const sys_signame[];
#include
<string.h>
char *
strsignal
(int
sig);
int
strsignal_r
(int sig,
char *strsignalbuf, size_t
buflen);
DESCRIPTION
The
psignal
(),
strsignal
(), and
strsignal_r
() functions locate the descriptive
message string for a signal number.
The
strsignal
()
function accepts a signal number argument sig and
returns a pointer to the corresponding message string.
The
strsignal_r
()
function renders the same result into strsignalbuf for
a maximum of buflen characters and returns 0 upon
success.
The
psignal
()
function accepts a signal number argument sig and
writes it to the standard error. If the argument s is
non-NULL
and does not point to the null character,
s is written to the standard error file descriptor
prior to the message string, immediately followed by a colon and a space. If
the signal number is not recognized
(sigaction(2)), the string “Unknown signal” is
produced.
The message strings can be accessed directly through the external
array sys_siglist, indexed by recognized signal
numbers. The external array sys_signame is used
similarly and contains short, lower-case abbreviations for signals which are
useful for recognizing signal names in user input. The defined variable
NSIG
contains a count of the strings in
sys_siglist and sys_signame.
RETURN VALUES
strsignal
() a pointer to the desired
message or a NULL value indicating an error. This string is not to be freed
by the caller. Beginning with Mac OSX 10.7, this string is unique to each
thread.
strsignal_r
() 0 if the message string is
successfully copied in its entirety to
strsignalbuf.
ERRORS
strsignal
() will fail and no additional
memory will be allocated if one of the following are true:
- [
ENOMEM
] - There was insufficient memory to allocate storage space for the return value in the running thread.
strsignal_r
() will return an error (but
not fail) if one or more condition is met:
- [
ERANGE
] - buflen is not long enough to fit the length of the message. strsignalbuf will contain the message string that has been truncated and NUL terminated to fit the length specified by buflen.
- [
EINVAL
] - sig <= 0 or >= NSIG.
SEE ALSO
HISTORY
The psignal
() function appeared in
4.2BSD.