sigsuspend()
QNX SDP8.0C Library ReferenceAPIDeveloper
Replace the signal mask, and then suspend the thread
Synopsis:
#include <signal.h>
int sigsuspend( const sigset_t *sigmask );
Arguments:
- sigmask
- A pointer to a sigset_t object that specifies the signals that you want in the thread's signal mask.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The sigsuspend() function replaces the thread's signal mask with the set of signals pointed to by sigmask and then suspends the thread until delivery of a signal whose action is either to execute a signal-catching function (then return), or to terminate the thread.
Returns:
-1 (if the function returns); errno is set.
Errors:
- EFAULT
- A fault occurred trying to access the buffers provided.
- EINTR
- A signal was caught by the calling thread, and control is returned from the signal-catching function.
Examples:
/*
* This program pauses until a signal other than
* a SIGINT occurs. In this case a SIGALRM.
*/
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
sigset_t set;
int main( void )
{
sigemptyset( &set );
sigaddset( &set, SIGINT );
printf( "Program suspended and immune to breaks.\n" );
printf( "A SIGALRM will terminate the program"
" in 10 seconds.\n" );
alarm( 10 );
sigsuspend( &set );
return( EXIT_SUCCESS );
}
Classification:
Safety: | |
---|---|
Cancellation point | Yes |
Signal handler | Yes |
Thread | Yes |
Page updated: