Voltar à lista
Linux x86_64Processos & threads#157

prctl

Ponto de entrada multiplexado para dezenas de operações de controle sobre o próprio processo.

Descrição

Cobre um leque muito amplo de ajustes: nome da thread (PR_SET_NAME), comportamento em dumpability/core dump (PR_SET_DUMPABLE), no_new_privs para sandboxing (PR_SET_NO_NEW_PRIVS), subreaper de processos órfãos (PR_SET_CHILD_SUBREAPER), controle de speculative execution (PR_SET_SPECULATION_CTRL), entre muitas outras.

Header: sys/prctl.hman 2

Assinatura

int prctl(
    int option,
    unsigned long arg2,
    unsigned long arg3,
    unsigned long arg4,
    unsigned long arg5
);

Parâmetros

ParâmetroTipoDescrição
optionintOperação a executar.
arg2unsigned longArgumento cujo significado depende de `option`.
arg3unsigned longArgumento cujo significado depende de `option`.
arg4unsigned longArgumento cujo significado depende de `option`.
arg5unsigned longArgumento cujo significado depende de `option`.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1optionint
rsiargumento 2arg2unsigned long
rdxargumento 3arg3unsigned long
r10argumento 4arg4unsigned long
r8argumento 5arg5unsigned long

Valor de retorno

Depende de `option`; em geral 0 ou um valor informativo em sucesso, -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
EINVAL(22)
Argumento inválido.
ENODEV(19)
Dispositivo inexistente.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas