PSIGNAL(3) FreeBSD Library Functions Manual PSIGNAL(3)
NAME
psignal, psiginfo, strsignal, sys_siglist, sys_signame, sig2str, str2sig
- system signal messages
LIBRARY
Standard C Library (libc, -lc)
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 IEEE Std
1003.1-2008 ("POSIX.1") , while the sig2str() and str2sig() functions are
defined by IEEE Std 1003.1-2024 ("POSIX.1").
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.
FreeBSD 15.1-STABLE-HBSD May 10, 2025 PSIGNAL(3)