Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sigvec(2)

sigsetops(3)

sigprocmask(3)

sigsuspend(3)

sigpending(2)

setjmp(3)

siginterrupt(3)

tty(4)

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 sigaction 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 suppress 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. The flag is set so that interrupted system calls will fail with the EINTR error instead of getting restarted.

Return Values

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. 

See Also

sigvec(2), sigsetops(3), sigprocmask(3), sigsuspend(3), sigpending(2), setjmp(3), siginterrupt(3), tty(4)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026