Linux x86_64Processos & threads#302
prlimit64
Consulta e/ou define limites de recurso de qualquer processo (não apenas o chamador), com valores de 64 bits sem truncamento.
Descrição
Combina e substitui `getrlimit`/`setrlimit`, adicionando a capacidade de ajustar limites de outro processo (com permissão) — usado por ferramentas de gerência de recursos e supervisores de processo.
man 2Desde o kernel 2.6.36
Assinatura
int prlimit64(
pid_t pid,
int resource,
const struct rlimit64 * new_limit,
struct rlimit64 * old_limit
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| pid | pid_t | Processo alvo; 0 significa o chamador. |
| resource | int | Tipo de recurso. |
| new_limit | const struct rlimit64 * | Novos limites, ou NULL para apenas consultar. |
| old_limit | struct rlimit64 * | Se não for NULL, recebe os limites anteriores. |
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 | resourceint |
| rdx | argumento 3 | new_limitconst struct rlimit64 * |
| r10 | argumento 4 | old_limitstruct rlimit64 * |
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.
- EPERM(1)
- Operação não permitida (falta de privilégio).
- ESRCH(3)
- Processo inexistente.