Reference

psiginfo(3)

system signal messages

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.

RETURN VALUES

The sig2str() and str2sig() return 0 on success and -1 on translation failure. In the latter case the memory to store the translation result is left intact.

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.

History