| Updated: October 28, 2024 | 
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 |