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