NAME
ssignal(), gsignal() — software signals
SYNOPSIS
#include <signal.h>
int (*ssignal(int sig, int (*action)(int)))(int);
int gsignal(int sig);
DESCRIPTION
ssignal()
and
gsignal()
implement a software facility similar to
signal(5).
This facility is used by the Standard C Library
to enable users to indicate the disposition of error conditions,
and is also made available to users
for their own purposes.
Software signals made available to users
are associated with integers
in the inclusive range 1 through 15.
A call to
ssignal()
associates a procedure,
action,
with the software signal
sig;
the software signal,
sig,
is raised by a call to
gsignal().
Raising a software signal
causes the action established for that signal to be taken.
The first argument to
ssignal()
is a number identifying the type of signal
for which an action is to be established.
The second argument defines the action;
it is either the name of a (user-defined)
action function
or one of the manifest constants
SIG_DFL
(default) or
SIG_IGN
(ignore).
ssignal()
returns the action previously established for that signal type;
if no action has been established or the signal number is illegal,
ssignal()
returns
SIG_DFL.
gsignal()
raises the signal identified by its argument,
sig:
If an action function has been established for
sig,
that action is reset to
SIG_DFL
and the action function is entered with argument
sig.
gsignal()
returns the value returned to it by the action function.
If the action for
sig
is
SIG_IGN,
gsignal()
returns the value 1 and takes no other action.
If the action for
sig
is
SIG_DFL,
gsignal()
returns the value 0 and takes no other action.
If
sig
has an illegal value or no action was ever specified for
sig,
gsignal()
returns the value 0 and takes no other action.
NOTES
Some additional signals with numbers outside the range 1 through 15
are used by the Standard C Library to indicate error conditions.
Those signal numbers outside the range 1 through 15 are legal,
although their use
may interfere with the operation of the Standard C Library.
STANDARDS CONFORMANCE
ssignal(): SVID2, SVID3, XPG2
gsignal(): SVID2, SVID3, XPG2