We mentioned above that the shell prints a message describing the signal that terminated a child process. The clean way to print a message describing a signal is to use the functions strsignal
and psignal
. These functions use a signal number to specify which kind of signal to describe. The signal number may come from the termination status of a child process (see Process Completion) or it may come from a signal handler in the same process.
This function is a GNU extension, declared in the header file `string.h'.
stderr
; see Standard Streams.
If you call psignal
with a message that is either a null pointer or an empty string, psignal
just prints the message corresponding to signum, adding a trailing newline.
If you supply a non-null message argument, then psignal
prefixes its output with this string. It adds a colon and a space character to separate the message from the string corresponding to signum.
This function is a BSD feature, declared in the header file `signal.h'.
There is also an array sys_siglist
which contains the messages for the various signal codes. This array exists on BSD systems, unlike strsignal
.