Voltar à lista
Linux x86_64Sinais#14

rt_sigprocmask

Examina e/ou altera a máscara de sinais bloqueados da thread chamadora.

Descrição

Sinais presentes na máscara ficam pendentes (não são entregues) até serem desbloqueados. Base da função de biblioteca `pthread_sigmask`/`sigprocmask(2)`, fundamental para sincronizar tratamento de sinais em programas multi-thread.

Header: signal.hman 2

Assinatura

int rt_sigprocmask(
    int how,
    const sigset_t * set,
    sigset_t * oldset,
    size_t sigsetsize
);

Parâmetros

ParâmetroTipoDescrição
howintSIG_BLOCK, SIG_UNBLOCK ou SIG_SETMASK — como combinar `set` com a máscara atual.
setconst sigset_t *Novo conjunto de sinais, ou NULL para apenas consultar a máscara atual.
oldsetsigset_t *Se não for NULL, recebe a máscara anterior.
sigsetsizesize_tTamanho em bytes de sigset_t.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1howint
rsiargumento 2setconst sigset_t *
rdxargumento 3oldsetsigset_t *
r10argumento 4sigsetsizesize_t

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
EINVAL(22)
Argumento inválido.

Relacionadas