pause()

Updated: April 19, 2023

Suspend the calling thread until it runs a signal handler

Synopsis:

#include <unistd.h>

int pause( void );

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

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.

Returns:

When the signal handler runs, pause() returns -1 and sets errno to EINTR; otherwise, it never returns.

Examples:

#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;
  }

Classification:

POSIX 1003.1

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes