#include <lcsignal.h> int sigaction(int signum, const struct sigaction *newsig, struct sigaction *oldsig);The synopsis for the POSIX implementation is
#include <signal.h> int sigaction(int signum, const struct sigaction *newsig, struct sigaction *oldsig);You should use
<signal.h>
only if an appropriate feature
test macro has been defined.
sigaction
modifies the action associated with a signal.
sigaction
can be used for signals defined by SAS/C as well
as OpenEdition signals. It does not require that OpenEdition be
installed or available. signum
is the number of the signal.
signum
must be a symbolic signal name defined in <signal.h>
.
newsig
is the new action associated with a signal; if
newsig
is a NULL pointer, the signal action is not changed.
oldsig
is a pointer to a location where the action currently
associated with the signal is to be stored, or NULL if this
information is not needed.
The sigaction
structure is defined as
struct sigaction { /* function that handles the signal */ __remote void (*sa_handler)(int); /* set of signals to be added to signal mask */ sigset_t sa_mask; /* signal flags */ int sa_flags; };
sa_handler
can be a pointer to a function, or it can have one of
these values:
sa_mask
is the set of signals to be added to the signal mask during
handling of the signal.
sa_flags
enables these flag bits (as defined
by the POSIX.2 standard) to be set:
SAS/C also defines a number of nonstandard flags that may be set in the
sa_flags
word of the sigaction
structure. The relevant
nonstandard flags are
SA_GLOBAL
sigaction
call with SA_GLOBAL
set is comparable in effect to a cosignal
call.)
Note:
In an application with coprocesses, the sa_mask
and
sa_flags
settings for a call to sigaction
always apply to all coprocesses, not just to the calling coprocess.
See Chapter 9, "Coprocessing Functions," in SAS/C Library Reference, Volume 2 for more details.
SA_PREVIOUS
sa_mask
and sa_flags
values specified by the argument to sigaction are to be ignored,
and the settings specified by the previous call to sigaction
are to be used. This flag is useful for defining local handlers in a
coprocess without perturbing the handling defined by other coprocesses.
See Chapter 9, "Coprocessing Functions," in SAS/C Library Reference, Volume 2 for more details.
SA_USRFLAG1
, SA_USRFLAG2
, ... SA_USRFLAG8
sigaction
returns 0 if it is successful and
- 1 if it is not successful.
sigsetjmp
.
cosignal
, sigaddset
, signal
, sigprocmask
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.