Suspend the calling thread until delivery of a signal
#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 delivery of a signal whose action is either to execute a signal handler or to terminate the process.
If the action is to terminate the process, pause() doesn't return. If the action is to execute a signal handler, pause() returns after the signal handler returns.
On error, 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 |