---
name: "sigwait"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/sigwait/3"
---

# sigwait(3)

wait for a signal

## NAME

sigwait - wait for a signal

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <signal.h>
```

**int sigwait(const sigset\_t \*restrict** *set***, int \*restrict** *sig***);**

Feature Test Macro Requirements for glibc (see [**feature\_test\_macros**(7)](/feature_test_macros/7.md)):

**sigwait**():

```
    Since glibc 2.26:
        _POSIX_C_SOURCE >= 199506L
    glibc 2.25 and earlier:
        _POSIX_C_SOURCE
```

## DESCRIPTION

The **sigwait**() function suspends execution of the calling thread until one of the signals specified in the signal set *set* becomes pending. For a signal to become pending, it must first be blocked with [**sigprocmask**(2)](/sigprocmask/2.md). The function accepts the signal (removes it from the pending list of signals), and returns the signal number in *sig*.

The operation of **sigwait**() is the same as [**sigwaitinfo**(2)](/sigwaitinfo/2.md), except that:

- •

  **sigwait**() returns only the signal number, rather than a *siginfo\_t* structure describing the signal.

- •

  The return values of the two functions are different.

## RETURN VALUE

On success, **sigwait**() returns 0. On error, it returns a positive error number (listed in ERRORS).

## ERRORS

- **EINVAL**

  *set* contains an invalid signal number.

## ATTRIBUTES

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

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **sigwait**() | Thread safety | MT-Safe |

## VERSIONS

**sigwait**() is implemented using [**sigtimedwait**(2)](/sigtimedwait/2.md); consult its **NOTES**.

The glibc implementation of **sigwait**() silently ignores attempts to wait for the two real-time signals that are used internally by the NPTL threading implementation. See [**nptl**(7)](/nptl/7.md) for details.

## STANDARDS

POSIX.1-2008.

## HISTORY

POSIX.1-2001.

## EXAMPLES

See [**pthread\_sigmask**(3)](/pthread_sigmask/3.md).

## SEE ALSO

[**sigaction**(2)](/sigaction/2.md), [**signalfd**(2)](/signalfd/2.md), [**sigpending**(2)](/sigpending/2.md), [**sigsuspend**(2)](/sigsuspend/2.md), [**sigwaitinfo**(2)](/sigwaitinfo/2.md), [**sigsetops**(3)](/sigsetops/3.md), [**signal**(7)](/signal/7.md)
