PSIGNAL(3)

NAME
psignal, psiginfo, strsignal, sys_siglist, sys_signame, sys_nsig - system signal messages

LIBRARY
libc

SYNOPSIS
#include <signal.h>
void
psignal(int sig, const char *s);
void
psiginfo(const siginfo_t *si, const char *s);
extern const char * const sys_siglist[];
extern const char * const sys_signame[];
extern const int sys_nsig;
#include <string.h>
char *
strsignal(int sig);

DESCRIPTION
The psignal() and strsignal() 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 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 psiginfo() function is similar to psignal(), except that the signal number information is taken from the si argument which is a siginfo_t structure.

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 external variable sys_nsig contains a count of the strings in sys_siglist and sys_signame. Note that the defined variable NSIG will typically be the same as sys_nsig, but might be different due to newer or older kernels and newer or older libc libraries. For maximum portability you must use sys_nsig to limit-check the above arrays. Additionally, you should check for NULL array entries and generate a generic signal name in those cases.

SEE ALSO
sigaction(2), perror(3), strerror(3)

HISTORY
The psignal() function appeared in 4.2BSD. The psiginfo() function appeared in DragonFly 4.1.