ssignal, ssignal_r, gsignal, gsignal_r - Set and raise a
software signal
#include <signal.h>
void *ssignal(
void (*function)(int))) (int ); int gsignal(
int signal );
The following functions are supported to maintain backward
compatibility 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)
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.
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 processing within
an application. signal() and related functions handle
system-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 function 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 userdefined
function, or either of the constants SIG_DFL
(default action) or SIG_IGN (ignore signal). The ssignal()
function returns the procedure that was previously 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 parameter 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 procedure 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.
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 structure in sigs.
The ssignal() and ssignal_r() functions return the value
of the previously 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.
Functions: kill(2) signal(2).
ssignal(3)
[ Back ] |