Operating systems, development tools, and professional services
for connected embedded systems

Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation

QNX Developer Support

[Previous] [Contents] [Index] [Next]

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()


[Previous] [Contents] [Index] [Next]