siginhas Subroutine

Propósito

Filas um sinal para um processo.

Biblioteca

Biblioteca C Padrão (libc.a)

Sintaxe

#include <signal.h>

int sigqueue (pid, signo, value)
pid_t pid;
int signo;
const union sigval value;

Descrição

A subroutina sigfileirinha faz com que o sinal especificado pelo parâmetro signo seja enviado com o valor especificado pelo parâmetro value para o processo especificado pelo parâmetro pid . Se o parâmetro signo for zero, a verificação de erro será realizada mas nenhum sinal é realmente enviado. Isso pode ser usado para verificar a validade do parâmetro pid .

As condições necessárias para que um processo tenha permissão para fazer fila de um sinal para outro processo são as mesmas que para a subroutine kill .

A subroutine sigfila retorna imediatamente. Se SA_SIGINFO for configurado pelo processo de recebimento para o sinal especificado, e se os recursos estiverem disponíveis para fazer fila do sinal, o sinal é enfileirado e enviado para o processo de recebimento. Se SA_SIGINFO não for configurado para o parâmetro signo , o sinal é enviado pelo menos uma vez para o processo de recebimento.

Se vários sinais na faixa SIGRTMIN para SIGRTMAX devem estar disponíveis para entrega, a menor numeração deles será entregue primeiro.

Parâmetros

Item Descrição
pid Especifica o processo para o qual um sinal deve ser enviado.
sinal Especifica o número do sinal.
valor Especifica o valor a ser enviado com o sinal.

Valores De Retorno

Após a conclusão bem-sucedida a subroutine sigfila retorna um zero. Se não tiver êxito, ele retorna -1 e define a variável errno para indicar o erro.

Código de Erro

A subroutine sigfila falhará se:
Item Descrição
EAGAIN Nenhum recurso está disponível para enfileirar o sinal. O processo já enfileirou os sinais SIGQUEUE_MAX que ainda estão pendentes no (s) receptor (s), ou um limite de recursos em todo o sistema foi excedido.
EINVAL O valor do parâmetro signo é um número de sinal inválido ou não suportado, ou se o sinal selecionado pode parar ou continuar o processo de recebimento. AIX não suporta o enfileiramento dos seguintes sinais: SIGKILL, SIGSTOP, SIGTSTP, SIGCONT, SIGTTIN, SIGTTOU e SIGCLD.
EPERM O processo não tem o privilégio apropriado para enviar o sinal para o processo de recebimento.
ESRCH O processo especificado pelo parâmetro pid não existe.