Sistemas Operacionais

Chamada de Sistema: sigprocmask()


SINÓPSE

#include < signal.h >

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

 

DESCRIÇÃO

A chamada de sistema sigprocmask() estabelece uma máscara de sinais para um processo. A máscara de sinais indica quais sinais estão bloqueados e quais não estão.

Pode-se especificar uma das seguintes opções para how: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK. SIG_BLOCK causa a nova máscara de sinais bloqueados do processo ser igual à união dos sinais atualmente na máscara do processo mais os sinais existentes no conjunto set. SIG_UNBLOCK causa o desbloqueio dos sinais existentes no conjunto set e que estavam bloqueados na máscara de sinais do processo. SIG_SETMASK indica que o conjunto de sinais set constituirá o conjunto dos sinais bloqueados na nova máscara do processo.

Se set não é NULL, o conjunto de sinais atual no processo será influenciado pelo conjunto de sinais apontado por set, de acordo com a opção how.

Se oldset não é NULL, o conjunto de sinais atual no processo, antes das mudanças, será copiado para a localização de memória apontada por oldset.

Veja o Experimento #4 para maiores informações sobre a chamada sigprocmask e sinais no geral.

 

EXEMPLO

Para ter o sinal SIGUSR1 bloqueado no processo:

#include < signal.h >

...

sigset_t sigset;

...

sigemptyset( &sigset );
sigaddset( SIGUSR1 );

...

if( sigprocmask( SIG_BLOCK, &sigset, NULL ) == -1 )
{
	perror( "sigprocmask" );
}

 

VEJA TAMBÉM

sigaddset sigdelset sigemptyset sigfillset sigaction.html sigqueue.html sigsuspend


DISPONÍVEL

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