Manpages - sigsetops.3

Table of Contents

NAME

sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal set operations

SYNOPSIS

  #include <signal.h>

  int sigemptyset(sigset_t *set);
  int sigfillset(sigset_t *set);

  int sigaddset(sigset_t *set, int signum);
  int sigdelset(sigset_t *set, int signum);

  int sigismember(const sigset_t *set, int signum);

Feature Test Macro Requirements for glibc (see *feature_test_macros*(7)):

*sigemptyset*(), *sigfillset*(), *sigaddset*(), *sigdelset*(), *sigismember*():

      _POSIX_C_SOURCE

DESCRIPTION

These functions allow the manipulation of POSIX signal sets.

*sigemptyset*() initializes the signal set given by set to empty, with all signals excluded from the set.

*sigfillset*() initializes set to full, including all signals.

*sigaddset*() and *sigdelset*() add and delete respectively signal signum from set.

*sigismember*() tests whether signum is a member of set.

Objects of type sigset_t must be initialized by a call to either *sigemptyset*() or *sigfillset*() before being passed to the functions *sigaddset*(), *sigdelset*(), and *sigismember*() or the additional glibc functions described below (*sigisemptyset*(), *sigandset*(), and *sigorset*()). The results are undefined if this is not done.

RETURN VALUE

*sigemptyset*(), *sigfillset*(), *sigaddset*(), and *sigdelset*() return 0 on success and -1 on error.

*sigismember*() returns 1 if signum is a member of set, 0 if signum is not a member, and -1 on error.

On error, these functions set errno to indicate the error.

ERRORS

EINVAL
signum is not a valid signal.

ATTRIBUTES

For an explanation of the terms used in this section, see *attributes*(7).

Interface Attribute Value
*sigemptyset*(), *sigfillset*(), *sigaddset*(), *sigdelset*(), *sigismember*(), *sigisemptyset*(), *sigorset*(), *sigandset*() Thread safety MT-Safe

CONFORMING TO

POSIX.1-2001, POSIX.1-2008.

NOTES

When creating a filled signal set, the glibc *sigfillset*() function does not include the two real-time signals used internally by the NPTL threading implementation. See *nptl*(7) for details.

Glibc extensions

If the _GNU_SOURCE feature test macro is defined, then <signal.h> exposes three other functions for manipulating signal sets:

  int sigisemptyset(const sigset_t *set);
  int sigorset(sigset_t *dest, const sigset_t *left,
   const sigset_t *right);
  int sigandset(sigset_t *dest, const sigset_t *left,
   const sigset_t *right);

*sigisemptyset*() returns 1 if set contains no signals, and 0 otherwise.

*sigorset*() places the union of the sets left and right in dest. *sigandset*() places the intersection of the sets left and right in dest. Both functions return 0 on success, and -1 on failure.

These functions are nonstandard (a few other systems provide similar functions) and their use should be avoided in portable applications.

SEE ALSO

*sigaction*(2), *sigpending*(2), *sigprocmask*(2), *sigsuspend*(2)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-21 Mon 14:43