sigaction(3)
NAME
sigaction − software signal facilities (POSIX)
SYNTAX
#include <signal.h>
struct sigaction {
void (*sa_handler)();
sigset_t sa_mask;
int sa_flags;
};
int sigaction(sig, vec, ovec)
int sig;
struct sigaction *vec, *ovec;
DESCRIPTION
The siagaction call is the POSIX equivalent to the sigvec() system call. This call behaves as described on the sigvec() reference page with the following modifications:
•The signal mask is manipulated using the sigsetops() functions.
•A process can supress the generation of the SIGCHLD when a child stops by setting the SA_NOCLDSTOP bit in sa_flags.
•The SV_INTERRUPT flag is always set by the system when using sigaction() in POSIX mode.
RETURN VALUE
A 0 return value indicated that the call succeeded. A −1 return value indicates an error occurred and errno is set to indicated the reason.
DIAGNOSTICS
The sigaction system call fails and a new signal handler is not installed if one of the following occurs:
[EFAULT] Either vec or ovec points to memory which is not a valid part of the process address space.
[EINVAL] Sig is not a valid signal number.
[EINVAL] An attempt is made to ignore or supply a handler for SIGKILL or SIGSTOP.
[EINVAL] An attempt is made to ignore SIGCONT (by default SIGCONT is ignored).
SEE ALSO
sigvec(2), sigsetops(3), sigprocmask(3), sigsuspend(3), sigpending(2), setjmp(3), siginterrupt(3), tty(4)
Subroutines