Linux x86_64Sinais#129
rt_sigqueueinfo
Envia um sinal a um processo, incluindo dados adicionais (siginfo_t) definidos pelo remetente.
Descrição
Como `kill`, mas permite anexar um valor arbitrário (inteiro ou ponteiro) que o receptor pode ler em seu tratador com SA_SIGINFO — base da função `sigqueue(3)`, usada para comunicação de sinais em tempo real com dados.
man 2
Assinatura
int rt_sigqueueinfo(pid_t tgid, int sig, siginfo_t * info);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| tgid | pid_t | PID do processo (thread group) destinatário. |
| sig | int | Número do sinal a enviar. |
| info | siginfo_t * | Dados adicionais anexados ao sinal. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | tgidpid_t |
| rsi | argumento 2 | sigint |
| rdx | argumento 3 | infosiginfo_t * |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EAGAIN(11)
- Recurso temporariamente indisponível (tente novamente); também conhecido como EWOULDBLOCK.
- EINVAL(22)
- Argumento inválido.
- EPERM(1)
- Operação não permitida (falta de privilégio).
- ESRCH(3)
- Processo inexistente.