PSIGNAL(3)

NAME
psignal, psiginfo, strsignal, sys_siglist, sys_signame, sig2str, str2sig - 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[];
#include <string.h>
char *
strsignal(int sig);
int
sig2str(int signum, char *str);
int
str2sig(char *str, int *pnum);

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, upper-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.

The sig2str() function translates the signal number signum to the signal name, without the “SIG” prefix, and stores it at the location specified by str, which should be large enough to hold the name and the terminating NUL byte. The symbol SIG2STR_MAX gives the maximum size in bytes required.

The str2sig() function translates the signal name str to a signal number and stores it in the location referenced by pnum. The name in str can be either the name of the signal, with or without the “SIG” prefix, or a decimal number.

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

STANDARDS
The psignal() and psiginfo() functions are defined by p1003.1-2008 , while the sig2str() and str2sig() functions are defined by p1003.1-2024.

HISTORY
The psignal() function appeared in 4.2BSD. The psiginfo() function appeared in FreeBSD 14.3, NetBSD 6.0, and DragonFly 4.1. The sig2str() and str2sig() functions appeared in FreeBSD 15.0.