Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
prctl - Operations sur un processus
SYNOPSIS
#include <sys/prctl.h>
int prctl(int option, unsigned long arg2, unsigned long arg3,
unsigned long arg4, unsigned long arg5);
DESCRIPTION
prctl() est invoque avec un premier parametre indiquant ce qu'il faut
faire, (ses valeurs sont definies dans <linux/prctl.h>), et des
parametres supplementaires dont la signification depend du premier
parametre. Celui-ci peut etre :
PR_CAPBSET_READ (depuis Linux 2.6.25)
Renvoyer (en resultat de fonction) 1 si la capacite indiquee par
arg2 est presente dans la limitation de capacites du thread
appelant ou 0 si elle ne l'est pas. Les constantes des capacites
sont definies dans <linux/capability.h>. L'ensemble des
capacites liees controle si le processus peut recevoir la
capacite par un ensemble de capacites autorisees pour un fichier
lors d'un appel futur a execve(2).
Si la capacite indiquee dans arg2 n'est pas valable, alors
l'appel echoue avec l'erreur EINVAL.
PR_CAPBSET_DROP (depuis Linux 2.6.25)
Si le thread appelant a la capacite CAP_SETPCAP, alors enlever
la capacite indiquee par arg2 dans l'ensemble de limitation de
capacites du thread appelant. Les fils du thread appelant
heriteront de cette nouvelle limitation de capacites reduite.
L'appel echoue avec l'erreur EPERM si le thread appelant n'a pas
la capacite CAP_SETPCAP ; ou avec l'erreur EINVAL si arg2 ne
represente pas une capacite correcte ; ou avec l'erreur EINVAL
si les capacites de fichier ne sont pas activee dans le noyau,
auquel cas les limitations ne sont pas prises en charge par le
noyau.
PR_SET_DUMPABLE (depuis Linux 2.3.20)
Fixer l'attribut determinant si un fichier core est produit
lorsque le processus recoit un signal dont le comportement par
defaut est de produire un fichier core. (Normalement cet
attribut est valide pour un processus par defaut, mais est
efface a l'execution d'un programme Set-UID ou Set-GID ainsi que
par divers appels systeme manipulant des UID et GID). Dans les
noyaux jusqu'a 2.6.12 inclus, arg2 doit valoir 0 (pas de fichier
core) ou 1 (fichier core possible). Entre les noyaux 2.6.13 et
2.6.17, la valeur 2 etait egalement autorisee ; elle permettait
a un binaire qui ne produirait normalement pas de fichier core
d'en creer un uniquement lisible par root ; cette fonctionnalite
a ete supprimee pour des raisons de securite. (Consultez aussi
la description de /proc/sys/fs/suid_dumpable dans proc(5).)
PR_GET_DUMPABLE (depuis Linux 2.3.20)
Renvoyer (en resultat de fonction) l'etat actuel de l'attribut
de creation de fichier core du processus appelant.
PR_SET_ENDIAN (depuis Linux 2.6.18, seulement sur PowerPC)
Fixer le boutisme (endianness) du processus appelant a la valeur
donnee dans arg2, qui doit etre l'une des valeurs suivantes :
PR_ENDIAN_BIG, PR_ENDIAN_LITTLE, ou PR_ENDIAN_PPC_LITTLE
(PowerPC pseudo-petit boutiste).
PR_GET_ENDIAN (depuis Linux 2.6.18, seulement sur PowerPC)
Renvoyer le boutisme (endianness) du processus appelant, dans
l'emplacement pointe par (int *) arg2.
PR_SET_FPEMU (depuis Linux 2.4.18, 2.5.9, seulement sur ia64)
Fixer les bits de controle de l'emulation de FPU a arg2. Passer
PR_FPEMU_NOPRINT pour emuler silencieusement les operations
flottantes, ou PR_FPEMU_SIGFPE pour ne pas emuler les operations
flottantes, et envoyer SIGFPE.
PR_GET_FPEMU (depuis Linux 2.4.18, 2.5.9, seulement sur ia64)
Renvoyer les bits de controle de l'emulation de FPU, dans
l'emplacement pointe par (int *) arg2.
PR_SET_FPEXC (depuis Linux 2.4.21, 2.5.32, seulement sur PowerPC)
Fixer le mode d'exception flottante a arg2. Passer la valeur
PR_FP_EXC_SW_ENABLE pour utiliser FPEXC pour activer les
exceptions flottantes, PR_FP_EXC_DIV pour les divisions
flottantes par zero, PR_FP_EXC_OVF pour les depassements de
capacite vers le haut, PR_FP_EXC_UND pour les depassements de
capacite vers le bas, PR_FP_EXC_RES pour les resultats flottants
inexacts, PR_FP_EXC_INV pour les operations flottantes
invalides, PR_FP_EXC_DISABLED pour desactiver les exceptions
flottantes, PR_FP_EXC_NONRECOV pour le mode d'exceptions
asynchrone non recuperable, PR_FP_EXC_ASYNC pour le mode
d'exceptions asynchrone recuperable, PR_FP_EXC_PRECISE pour le
mode d'exception precis.
PR_GET_FPEXC (depuis Linux 2.4.21, 2.5.32, seulement sur PowerPC)
Renvoyer le mode d'exception flottante, dans l'emplacement
pointe par (int *) arg2.
PR_SET_KEEPCAPS (depuis Linux 2.2.18)
Fixer l'etat de l'attribut de conservation des capacites du
thread (keep capabilities), qui determine si l'ensemble des
capacites disponibles est efface lorsqu'on modifie les UID reel,
effectif et sauve du thread de maniere a ce que tous soient non
nuls alors qu'auparavant l'un au moins etait nul. Par defaut,
l'ensemble des capacites disponibles est efface lorsqu'un tel
changement intervient. Fixer l'attribut de conservation des
capacites du thread l'empeche d'etre efface. arg2 doit valoir 0
(les capacites disponibles sont effacees) ou 1 (capacites
disponibles conservees). L'ensemble des capacites effectives est
toujours efface lorsqu'un tel changement intervient, quelle que
soit la valeur de l'attribut de conservation des capacites. Cet
attribut est remis a zero pour les appels ulterieurs a
execve(2).
PR_GET_KEEPCAPS (depuis Linux 2.2.18)
Renvoyer (en resultat de fonction) l'etat actuel de l'attribut
de conservation des capacites du thread appelant.
PR_SET_NAME (depuis Linux 2.6.9)
Fixer le nom du processus appelant, en utilisant la valeur de
l'emplacement pointe par (char *) arg2. Le nom peut avoir
jusqu'a 16 octets de long et doit etre termine par un caractere
nul s'il est plus petit.
PR_GET_NAME (depuis Linux 2.6.11)
Renvoyer le nom du processus appelant, dans le tampon pointe par
(char *) arg2. Le tampon doit etre suffisamment grand pour
contenir jusqu'a 16 octets ; la chaine sera terminee par un
caractere nul si elle est plus petite.
PR_SET_PDEATHSIG (depuis Linux 2.1.57)
Configurer le signal de mort du pere du processus appelant avec
la valeur arg2 (qui peut etre un numero de signal dans
l'intervalle 1..maxsig, ou etre nul pour effacer le signal). Il
s'agit du numero du signal que le processus appelant recevra si
son pere se termine. Cette valeur est effacee pour le fils d'un
fork(2).
PR_GET_PDEATHSIG (depuis Linux 2.3.15)
Renvoyer la valeur actuelle du signal de mort du processus pere,
dans l'emplacement pointe par (int *) arg2.
PR_SET_SECCOMP (depuis Linux 2.6.23)
Configurer le mode de traitement securise pour le thread
appelant. Dans l'implementation actuelle, arg2 doit valoir 1.
Quand le mode de traitement securise a ete mis a 1, les seuls
appels systeme permis pour le thread sont read(2), write(2),
_exit(2) et sigreturn(2). Les autres appels systeme provoque la
reception d'un signal SIGKILL. Le mode de traitement securise
est utile pour les applications de traitement numerique qui
peuvent avoir besoin d'executer des instructions ne provenant
pas d'une source de confiance, lues a partir d'un tuyau
(<< pipe >>) ou d'une socket. Cette operation n'est disponible
que si le noyau a ete configure avec l'option CONFIG_SECCOMP
activee.
PR_GET_SECCOMP (depuis Linux 2.6.23)
Renvoyer le mode de traitement securise du thread appelant. Ce
n'est pas tres utile avec l'implementation actuelle (le mode
vaut toujours 1), mais pourrait etre utile dans le future pour
d'autres modes : si l'appelant n'est pas dans un mode de
traitement securise, cette operation renvoie 0 ; si l'appelant
est dans le mode de traitement securise, alors l'appel prctl()
provoquera l'envoie d'un signal SIGKILL au processus. Cette
operation n'est disponible que si le noyau a ete configure avec
l'option CONFIG_SECCOMP activee.
PR_SET_SECUREBITS (depuis Linux 2.6.26)
Configurer l'attribut << securebits >> du thread appelant a la
valeur fournie par arg2. Consultez capabilities(7).
PR_GET_SECUREBITS (depuis Linux 2.6.26)
Renvoyer (en resultat de fonction) l'etat actuel de l'attribut
<< securebits >> du thread appelant. Consultez capabilities(7).
PR_SET_TIMING (depuis Linux 2.6.0-test4)
Permet de choisir la methode de mesure du temps du processus a
utiliser, en passant dans arg2 soit PR_TIMING_STATISTICAL
(methode statistique traditionnelle) ou PR_TIMING_TIMESTAMP
(methode exacte utilisant des horodatages). PR_TIMING_TIMESTAMP
n'est pas implemente pour l'instant (l'utilisation de ce mode
renverra l'erreur EINVAL).
PR_GET_TIMING (depuis Linux 2.6.0-test4)
Renvoyer (en resultat de fonction) quelle methode de mesure du
temps du processus est utilisee actuellement.
PR_SET_TSC (depuis Linux 2.6.26, seulement sur x86)
Configurer l'etat de l'attribut qui indique si le compteur
d'horodatage peut etre lu par le processus. Utilisez
PR_TSC_ENABLE pour arg2 permet d'autoriser les lectures ou
PR_TSC_SIGSEGV pour produire un SIGSEGV quand le processus
essaie de lire le compteur d'horodatage.
PR_GET_TSC (depuis Linux 2.6.26, seulement sur x86)
Renvoyer, dans l'emplacement pointe par (int *) arg2, l'etat de
l'attribut qui indique si le compteur d'horodatage peut etre lu.
PR_SET_UNALIGN
(Seulement sur : ia64, depuis Linux 2.3.48 ; parisc, depuis
Linux 2.6.15 ; PowerPC, depuis Linux 2.6.18 ; Alpha, depuis
Linux 2.6.22) Fixer les bits de controle pour les acces non
alignes a arg2. La valeur PR_UNALIGN_NOPRINT signifie que les
acces non alignes en espace utilisateurs sont silencieusement
corriges, et PR_UNALIGN_SIGBUS cause l'envoi de SIGBUS lors d'un
acces non aligne.
PR_GET_UNALIGN
(Consultez PR_SET_UNALIGN pour les informations sur les versions
et les architectures) Renvoyer les bits de controle des acces
non alignes, dans l'emplacement pointe par (int *) arg2.
PR_MCE_KILL (depuis Linux 2.6.32)
Fixer la politique de suppression de memoire corrompue de la
machine pour le thread actuel. Si arg2 vaut PR_MCE_KILL_CLEAR,
effacer la politique de suppression de memoire corrompue et
utiliser la valeur par defaut du systeme (qui est definie dans
/proc/sys/vm/memory_failure_early_kill, consultez proc(5)). Si
arg2 vaut PR_MCE_KILL_SET, utiliser une politique de suppression
de memoire corrompue specifique au thread. Dans ce cas, arg3
definit si la politique est immediate (early kill avec
PR_MCE_KILL_EARLY), differee (late kill avec PR_MCE_KILL_LATE),
ou la valeur par defaut du systeme (PR_MCE_KILL_DEFAULT). Une
suppression immediate signifie que la tache recoit un signal
SIGBUS des que la corruption memoire materielle est detectee a
l'interieur de son espace d'adressage. En mode retarde, le
processus n'est tue que lorsqu'il accede a une page corrompue.
Consultez sigaction(2) pour plus d'informations sur le signal
SIGBUS. Cette politique est heritee par les fils. Les arguments
restants de prctl(), non utilises, doivent etre mis a zero pour
preparer la future compatibilite.
PR_MCE_KILL_GET (depuis Linux 2.6.32)
Renvoyer la politique actuelle (par processus) de suppression
des processus empoisonnes. Tous les arguments non utilises de
prctl() doivent etre nuls.
VALEUR RENVOY'EE
En cas de reussite, PR_GET_DUMPABLE, PR_GET_KEEPCAPS, PR_CAPBSET_READ,
PR_GET_TIMING, PR_GET_SECUREBITS, PR_MCE_KILL_GET et (si elle rend la
main) PR_GET_SECCOMP renvoient les valeurs positives decrites
ci-dessus. Toute autre valeur d'option renvoie 0en cas de reussite. En
cas d'echec, -1 est renvoye et errno contient le code d'erreur.
ERREURS
EFAULT arg2 est une adresse non valable.
EINVAL La valeur de option n'est pas reconnue.
EINVAL option vaut PR_MCE_KILL ou PR_MCE_KILL_GET, et au moins un des
arguments non utilises de prctl() n'est pas nul.
EINVAL arg2 n'est pas une valeur valable pour cette option.
EINVAL option vaut PR_SET_SECCOMP ou PR_SET_SECCOMP et le noyau n'a pas
ete configure avec CONFIG_SECCOMP.
EPERM option vaut PR_SET_SECUREBITS et l'appelant n'a pas la capacite
CAP_SETPCAP ou a essaye d'enlever un attribut de
<< verrouillage >> ou a essayer de positionner un attribut pour
lequel l'attribut de verrouillage etait positionne (consultez
capabilities(7)).
EPERM option vaut PR_SET_KEEPCAPS et l'attribut
SECURE_KEEP_CAPS_LOCKED de l'appelant est positionne (consultez
capabilities(7)).
EPERM option vaut PR_CAPBSET_DROP et l'appelant n'a pas la capacite
CAP_SETPCAP.
VERSIONS
L'appel systeme prctl() a ete introduit dans Linux 2.1.57.
CONFORMIT'E
Cet appel systeme est specifique a Linux. IRIX dispose d'un appel
systeme prctl() (egalement introduit dans Linux 2.1.44 sur
l'architecture MIPS sous le nom irix_prctl), dont le prototype est
ptrdiff_t prctl(int option, int arg2, int arg3);
et les options permettent de d'obtenir le nombre maximal de processus
par utilisateur, le nombre maximal de processeurs utilisables par un
processus, verifier si un processus est bloque, lire ou fixer la taille
des piles,...
VOIR AUSSI
signal(2), core(5)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.