PRCTL(2)

NOMBRE
prctl - operaciones sobre un proceso

SINOPSIS
#include <sys/prctl.h>

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

DESCRIPCIÓN
prctl es llamada con un primer argumento especificando qué hacer (con los valores definidos en <linux/prctl.h>) y con más parámetros cuyo significado depende del primero. El primer argumento puede ser

PR_SET_PDEATHSIG
    (desde Linux 2.1.57) Establece la señal de terminación del proceso padre del proceso actual a arg2 (un valor de señal en el rango 1..maxsig, o cero para desactivar). Ésta es la señal que el proceso actual recibirá cuando su padre muera. Este valor se desactiva tras un fork().

PR_GET_PDEATHSIG
    (desde Linux 2.3.15) Almacena el valor actual de la señal de terminación del proceso padre en el argumento (int *) arg2.

PR_SET_DUMPABLE
    (desde Linux 2.4) Establece el estado de la bandera que determina si se producen volcados de memoria (core dumps) en la notificación de una señal cuyo comportamiento por defecto es producir un volcado de memoria. (Normalmente esta bandera se activa para un proceso por defecto, pero es puesta a cero cuando un programa con el bit set-UID o set-GID es ejecutado y también por varias llamadas al sistema que manipulan los valores de UID y GID de los procesos). arg2 debe ser o bien 0 (el proceso no admite volcados de memoria) ó 1 (el proceso admite volcados de memoria).

PR_GET_DUMPABLE
    (desde Linux 2.4) Devuelve (como resultado de la función) el estado actual de la bandera de volcado del proceso invocador.

PR_SET_KEEPCAPS
    Establece el estado de la bandera "mantener capacidades" del proceso, la cual determina si los conjuntos de capacidades efectivas y permitidas del proceso se borran o no cuando los identificadores de usuario del proceso cambian de tal manera que todos los identificadores de usuario de los conjuntos real, efectivo y salvado toman un valor distinto de cero cuando al menos uno de ellos previamente tenía el valor 0. (Por omisión, estos conjuntos de credenciales se borran). arg2 debe ser o bien 0 (las capacidades se ponen a cero) ó 1 (las capacidades se mantienen).

PR_GET_KEEPCAPS
    Devuelve (como resultado de la función) el estado actual de la bandera "mantener capacidades" del proceso invocador.

VALOR DEVUELTO
PR_GET_DUMPABLE y PR_GET_KEEPCAPS devuelven 0 ó 1 en caso de éxito. Todos los demás valores option devuelven 0 en caso de éxito. En caso de error, se devuelve -1, y errno toma el valor adecuado.

ERRORES

EINVAL
    El valor de option no se reconoce, o es PR_SET_PDEATHSIG y arg2 no es cero ni un número de señal.

CONFORME A
Esta llamada es específica de Linux. IRIX tiene una llamada al sistema ptctl (también introducida en Linux 2.1.44 como irix_prctl en la arquitectura MIPS), con prototipo

ptrdiff_t prctl(int option, int arg2, int arg3);

y opciones para obtener el máximo número de procesos por usuario, el máximo número de procesadores que el proceso invocador puede usar, conocer si un proceso concreto está actualmente bloqueado, obtener o activar el tamaño de pila máximo, etc., etc.

DISPONIBILIDAD
La llamada al sistema ptctl() fue introducida en Linux 2.1.57. No hay función de biblioteca ptctl() todavía.

VÉASE TAMBIÉN
signal(2)