Updated: April 19, 2023 |
Wait for a signal
#include <signal.h> int sigpause( int sig );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The sigpause() function assigns sig to the set of masked signals and then waits for a signal to arrive; on return, the set of masked signals is restored. The mask argument is usually 0 to indicate that no signals are now to be blocked. This function always terminates by being interrupted, returning -1, and setting errno to EINTR.
In normal usage, a signal is blocked using sigblock(). To begin a critical section, variables modified on the occurrence of the signal are examined to determine that there is no work to be done, and the process pauses awaiting work by using sigpause() with the mask returned by sigblock().
It isn't possible to block SIGKILL, SIGSTOP, or SIGCONT; this restriction is silently imposed by the system.
-1; errno is set to EINTR.
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
Use of these interfaces should be restricted to only applications written on BSD platforms. Use of these interfaces with any of the system libraries or in multithreaded applications is unsupported.