Linux x86_64Sinais#62
kill
Envia um sinal a um processo ou grupo de processos.
Descrição
Apesar do nome, não mata necessariamente o processo — o efeito depende do sinal enviado e de como o destinatário o trata. `pid` positivo, negativo, 0 ou -1 selecionam formas diferentes de endereçar processos individuais ou grupos inteiros.
Header:
signal.hman 2Nota
`sig == 0` é o idioma padrão para testar se um processo com um dado PID existe e é acessível, sem efeitos colaterais.
Assinatura
int kill(pid_t pid, int sig);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| pid | pid_t | Alvo: > 0 processo específico; 0 todo o grupo do chamador; -1 (exceto init) todos os processos alcançáveis; < -1 o grupo de processos |pid|. |
| sig | int | Número do sinal a enviar, ou 0 para apenas checar permissão/existência sem enviar nada. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | pidpid_t |
| rsi | argumento 2 | sigint |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- EPERM(1)
- Operação não permitida (falta de privilégio).
- ESRCH(3)
- Processo inexistente.
Relacionadas
Equivalente em Windows Win32