#include < signal.h > int sigsuspend( const sigset_t mask );
A chamada de sistema sigsuspend()
irá substituir a máscara de sinais corrente com aquela indicada por mask e suspenderá a execução do processo até que um sinal seja recebido. Uma vez que um sinal é recebido e que não esteja bloqueado, a máscara de sinais original será substituída.Veja o Experimento #4 para maiores informações sobre chamada sigsuspend e sinais no geral.
Para ter um processo bloqueado até que SIGUSR1 seja recebido, bloqueando todos os outros sinais:
#include < signal.h > ... sigset_t sigset; ... sigfillset( &sigset ); sigdelset( SIGUSR1 ); ... if( sigsuspend( &sigset ) == -1 ) { perror( "sigsuspend" ); }
sigaddset sigdelset sigemptyset sigfillset sigprocmask.html sigaction.html sigqueue.html sigsuspend
AIX, Linux, Lynx, SunOS e Solaris
Para maiores informações sobre este comando, consulte a página do manual de seu sistema operacional (comando man).