PTHREAD_SIGMASK(3) | Library Functions Manual | PTHREAD_SIGMASK(3)

# NAME

`pthread_sigmask` — examine and/or change a thread's signal mask

# SYNOPSIS

POSIX Threads Library (libpthread, -lpthread)
`#include <signal.h>`

int
`pthread_sigmask`(int how, const sigset_t *set, sigset_t *oset);

# DESCRIPTION

The `pthread_sigmask`() function examines and/or changes the calling thread's signal mask.

If set is not `NULL`, it specifies a set of signals to be modified, and how specifies what to set the signal mask to:

`SIG_BLOCK`
  Union of the current mask and set.
`SIG_UNBLOCK`
  Intersection of the current mask and the complement of set.
`SIG_SETMASK`
  set.

If oset is not NULL, the previous signal mask is stored in the location pointed to by oset.

`SIGKILL` and `SIGSTOP` cannot be blocked, and will be silently ignored if included in the signal mask.

# RETURN VALUES

If successful, `pthread_sigmask`() returns 0. Otherwise, an error is returned.

# ERRORS

`pthread_sigmask`() will fail if:

[`EINVAL`]
  how is not one of the defined values.

# SEE ALSO

sigaction(2), sigpending(2), sigprocmask(2), sigsuspend(2), pthreads(3), sigaddset(3)

# STANDARDS

`pthread_sigmask`() conforms to ISO/IEC 9945-1:1996 (“POSIX.1”).

June 7, 2025 | Debian