Linux x86_64Processos & threads#97
getrlimit
Consulta os limites de recurso (soft e hard) de um tipo específico para o processo chamador.
Descrição
Cobre limites como RLIMIT_NOFILE (máximo de descritores abertos), RLIMIT_NPROC (máximo de processos), RLIMIT_STACK (tamanho máximo de pilha), entre outros.
Header:
sys/resource.hman 2Nota
Nesta syscall crua de 32-bit em algumas arquiteturas antigas os valores eram truncados; em x86_64, glibc mapeia `getrlimit(3)` para a syscall equivalente a `prlimit64`, evitando o problema.
Assinatura
int getrlimit(int resource, struct rlimit * rlim);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| resource | int | Tipo de recurso a consultar, ex.: RLIMIT_NOFILE, RLIMIT_AS. |
| rlim | struct rlimit * | Recebe os limites soft (rlim_cur) e hard (rlim_max). |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | resourceint |
| rsi | argumento 2 | rlimstruct rlimit * |
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.