ssignal(3)ssignal(3)NAME
ssignal, ssignal_r, gsignal, gsignal_r - Set and raise a software sig‐
nal
SYNOPSIS
#include <signal.h>
void *ssignal(
void (*function)(int))) (int ); int gsignal(
int signal );
The following functions are supported to maintain backward compatibil‐
ity with previous versions of the operating system.
void *ssignal_r(
void (*function) (int),
void (*sigs[]) (int))) (int ); int gsignal_r(
int signal,
void (*sigs[]) (int) );
LIBRARY"
Standard C Library (libc)
PARAMETERS
Defines the signal. Specifies the action associated with the signal.
Specifies the array of signal functions. This structure must have at
least 21 entries, each of which must be initialized to 0 (zero) by the
caller.
DESCRIPTION
These functions are obsolete and are retained for compatibility with
earlier versions of the operating system.
The ssignal() and gsignal() functions implement a facility similar to
that of the signal() function and the kill() system call. However,
there is no connection between the two facilities. User programs can
use the ssignal() and gsignal() functions to handle exception process‐
ing within an application. signal() and related functions handle sys‐
tem-defined exceptions.
The signals available are associated with integers in the range 1 to
15. Other values are reserved for use by the C library and should not
be used.
The ssignal() function associates the procedure specified by the func‐
tion parameter with the signal specified by the signal parameter. The
gsignal() function raises the signal, causing the procedure specified
by the function parameter to be taken.
The function parameter is either a pointer to a user-defined function,
or either of the constants SIG_DFL (default action) or SIG_IGN (ignore
signal). The ssignal() function returns the procedure that was previ‐
ously established for that signal. If no procedure was established
before or if the signal number is illegal, then ssignal() returns the
value SIG_DFL.
The gsignal() function raises the signal specified by the signal param‐
eter by performing the following: If the procedure for signal is
SIG_DFL, the gsignal() function returns a value of 0 (zero) and takes
no other action. If the procedure for signal is SIG_IGN, the gsignal()
function returns a value of 1 and takes no other action. If the proce‐
dure for signal is a function, the function value is reset to SIG_DFL
and the function is called with signal passed as its parameter. The
gsignal() function returns the value returned by the calling function
with a single integer argument, which is the value of signal. If the
procedure for signal is illegal or if no procedure is specified for
that signal, gsignal() returns a value of 0 (zero) and takes no other
action.
NOTES
The ssignal_r() and gsignal_r() functions are the reentrant versions of
the ssignal() and gsignal() functions. They are supported in order to
maintain backward compatibility with previous versions of the operating
system. Upon successful completion, the ssignal_r() and gsignal_r()
functions place pointers in or retrieve pointers from the signal struc‐
ture in sigs.
RETURN VALUES
The ssignal() and ssignal_r() functions return the value of the previ‐
ously installed function if there was one, or SIG_DFL if there was not
a previously installed function. If the value of signal was illegal the
ssignal() and ssignal_r() functions return SIG_DFL.
The gsignal() and gsignal_r() functions return a value of 0 (zero) if
the procedure for signal is illegal, or if SIG_DFL is the action for
signal. The gsignal() and gsignal_r() functions return a value of 1 if
the procedure for signal is SIG_IGN. If none of these are true, then
the gsignal() and gsignal_r() functions return the value returned by
the calling function.
SEE ALSO
Functions: kill(2)signal(2).
ssignal(3)