The sigwait system call selects a set of signals, specified by set. If none of the selected signals are pending, sigwait waits until one or more of the selected signals has been generated. Then sigwait atomically clears one of the selected signals from the set of pending signals for the process and sets the location pointed to by sig to the signal number that was cleared.
The signals specified by set should be blocked at the time of the call to sigwait.
If successful, sigwait returns 0 and sets the location pointed to by sig to the cleared signal number. Otherwise, an error number is returned.
The sigwait system call will fail if: