Index of Section 3 Manual Pages
| Interix / SUA | sigvec.3 | Interix / SUA |
sigvec(3) sigvec(3)
sigvec()
NAME
sigvec() - BSD software signal facility
SYNOPSIS
#include
struct sigvec {
void (*sa_handler)();
int sa_mask;
int sa_flags;
};
int sigvec (int signum, struct sigvec *vec, struct sigvec *ovec)
DESCRIPTION
This interface is made obsolete by sigaction(2). See the sigaction(2)
reference page for a description of signals and signal handling and a list
of signals.
The sigvec(3) function assigns a handler for a specific signal. If vec is
non-zero, it specifies a handler routine and mask to be used when
delivering the specified signal. If ovec is non-zero, the routine returns
the previous handling information for the signal.
Once a signal handler is installed, it remains installed until another
sigvec(3) call is made, or until an exec(2) is performed. A signal-
specific default action may be reset by setting sa_handler to SIG_DFL. The
defaults are process termination; no action; stopping the process; or
continuing the process. See the list in sigaction(2) for each signal's
default action. If sa_handler is SIG_IGN, current and pending instances of
the signal are ignored and discarded.
After a fork(2) all signals, the signal mask, the signal stack, and the
restart/interrupt flags are inherited by the child.
The exec(2) family of routines reinstates the default action for all
isgnals which were caught, and resets all signals to be caught on the user
stack. Ignored signals remain ignored; the signal mask remains the same;
signals that interrupt system calls continue to do so.
RETURN VALUES
A 0 value indicated that the call succeeded. A -1 return value indicates
an error occurred and errno is set to indicated the reason.
ERRORS
The sigvec(3) function will fail and no new signal handler will be
installed if one of the following occurs:
[EFAULT]
Either vec or ovec points to memory that is not a valid part of the
process address space.
[EINVAL]
Signum is not a valid signal number.
[EINVAL]
An attempt is made to ignore or supply a handler for SIGKILL or
SIGSTOP.
NOTES
The mask cannot block SIGKILL or SIGSTOP. This is enforced silently by the
system.
This implementation does not suport such flags as SV_INTERRUPT or
SV_ONSTACK. The only flag available to sa_flags is SA_NOCLDSTOP. See
sigaction(2).
SEE ALSO
kill(1)
kill(2)
setjmp(3)
sigaction(2)
sigblock(3)
signal(2)
sigprocmask(2)
sigsetmask(3)
sigsuspend(2)
USAGE NOTES
The sigvec function is thread safe.
The sigvec function is not async-signal safe.