pause()

Suspend the calling thread until delivery of a signal

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 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.

Returns:

On error, 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

See also:

alarm(), errno, sigaction()