Suspend the calling thread until it runs a signal handler
#include <unistd.h> int pause( void );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The pause() function suspends the calling thread until it runs a signal handler. If another thread in the same process handles the signal, pause() doesn't return.
When the signal handler runs, pause() returns -1 and sets errno to EINTR; otherwise, it never returns.
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main( void ) { /* set an alarm to go off in 5 seconds */ alarm( 5 ); /* * Wait until we receive a SIGALRM signal. However, * since we don't have a signal handler, any signal * will kill us. */ printf( "Hang around, " " waiting to die in 5 seconds\n" ); pause(); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |