
#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.