PRCTL
Section : Manuel du programmeur Linux (
2)
Mise à jour de la version anglaise : 27 juillet 2007
Index
Menu principal
NOM
prctl - Opérations 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 invoqué avec un premier argument indiquant ce qu'il faut faire,
(ses valeurs sont définies dans
<linux/prctl.h>),
et des paramètres supplémentaires dont la signification
dépend du premier argument.
Celui-ci peut être :
- PR_SET_PDEATHSIG
-
(Depuis Linux 2.1.57)
Configure le signal de mort du père du processus appelant avec la valeur
arg2
(qui peut être un numéro de signal dans l'intervalle 1..maxsig,
ou être nul pour effacer le signal).
Il s'agit du numéro du signal que le processus appelant
recevra si son père se termine.
Cette valeur est effacée lors d'un
fork(2).
- PR_GET_PDEATHSIG
-
(Depuis Linux 2.3.15)
Lit la valeur actuelle du signal de mort du processus père, et
l'inscrit dans l'argument (int *)
arg2.
- PR_SET_DUMPABLE
-
(Depuis Linux 2.3.20)
Fixe l'attribut déterminant si un fichier core est produit lorsque le
processus reçoit un signal dont le comportement par défaut est de produire
un fichier core.
(Normalement cet attribut est validé pour un processus par défaut,
mais est effacé à l'exécution d'un programme Set-UID ou Set-GID
ainsi que par divers appels système manipulant des UID et GID).
Dans les noyaux jusqu'au 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 était également permise ;
ce qui faisait que l'on pouvait avoir un fichier core,
lisible par le superutilisateur seulement, pour des binaires pour lesquels
on ne devrait pas avoir de fichier core.
Pour des raisons de sécurité, cette fonctionnalité a été supprimée.
(Voir également la description de
/proc/sys/fs/suid_dumpable
dans
proc(5).)
- PR_GET_DUMPABLE
-
(Depuis Linux 2.3.20)
Renvoie (en résultat de fonction) l'état actuel de l'attribut de création
de fichier core du processus appelant.
- PR_SET_KEEPCAPS
-
(Depuis Linux 2.2.18)
Fixe l'état de l'attribut de conservation des capacités, qui détermine si
les ensembles de capacités effectives et disponibles sont effacés
lorsqu'on modifie les UID réel, effectif et sauvé du processus de manière
à ce que tous soient non nuls alors qu'auparavant l'un au moins était nul.
(Par défaut, les ensembles sont effacés).
arg2
doit valoir 0 (les capacités sont effacées) ou 1 (capacités conservées).
- PR_GET_KEEPCAPS
-
(Depuis Linux 2.2.18)
Renvoie (en résultat de fonction) l'état actuel de l'attribut
de conservation des capacités du processus appelant.
- PR_SET_TIMING
-
(Depuis Linux 2.6.0-test4)
Permet de choisir la méthode de mesure du temps du processus à utiliser,
en passant dans
arg2
soit
PR_TIMING_STATISTICAL
(méthode statistique traditionnelle), soit
PR_TIMING_TIMESTAMP
(méthode exacte utilisant des horodatages).
- PR_GET_TIMING
-
(Depuis Linux 2.6.0-test4)
Renvoie (en résultat de fonction) quelle méthode de mesure du temps
du processus est actuellement utilisée.
- PR_SET_NAME
-
(Depuis Linux 2.6.9)
Définit le nom du processus appelant à
arg2.
- PR_GET_NAME
-
(Depuis Linux 2.6.11)
Renvoie le nom du processus appelant dans
arg2.
- PR_GET_ENDIAN
-
(Depuis Linux 2.6.18, PowerPC seulement)
Renvoie le boutisme (endian-ness) du processus appelant.
- PR_SET_ENDIAN
-
(Depuis Linux 2.6.18, PowerPC seulement)
Définit le boutisme (endian-ness) du processus appelant
avec la valeur contenue dans
arg2,
qui doit être l'une des valeurs suivantes :
PR_ENDIAN_BIG,
PR_ENDIAN_LITTLE
ou
PR_ENDIAN_PPC_LITTLE
(PowerPC pseudo petit boutiste).
- 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)
Définit les bits de contrôle pour les accès non alignés à
arg2.
Passer
PR_UNALIGN_NOPRINT
pour corriger silencieusement les accès non alignés
en espace utilisateur, ou
PR_UNALIGN_SIGBUS
pour générer un
SIGBUS
lors d'un accès non aligné.
- PR_GET_UNALIGN
-
(Voir
PR_SET_UNALIGN
pour les informations sur les versions et les architectures)
Renvoie les bits de contrôle des accès non alignés dans
arg2.
- PR_SET_FPEMU
-
(Depuis Linux 2.4.18, 2.5.9, seulement sur ia64)
Définit les bits de contrôle de l'émulation virgule flottante à
arg2.
Passer
PR_FPEMU_NOPRINT
pour silencieusement émuler les opérations en virgule flottante, ou
PR_FPEMU_SIGFPE
pour ne pas émuler les opérations en virgule flottante
et envoyer
SIGFPE
à la place.
- PR_GET_FPEMU
-
(Depuis Linux 2.4.18, 2.5.9, seulement sur ia64)
Renvoie les bits de contrôle de l'émulation virgule flottante dans
arg2.
- PR_SET_FPEXC
-
(Depuis Linux 2.4.21, 2.5.32, seulement sur PowerPC)
Définit le mode d'exception virgule flottante à
arg2.
Passer
PR_FP_EXC_SW_ENABLE
pour utiliser FPEXC pour activer les exceptions en virgule flottante,
PR_FP_EXC_DIV
pour les divisions par zéro en virgule flottante,
PR_FP_EXC_OVF
pour les débordements en virgule flottante,
PR_FP_EXC_UND
pour les dépassements par le bas en virgule flottante,
PR_FP_EXC_RES
pour les résultats inexacts en virgule flottante,
PR_FP_EXC_INV
pour les opérations invalides en virgule flottante,
PR_FP_EXC_DISABLED
pour désactiver les exceptions en virgule flottante,
PR_FP_EXC_NONRECOV
pour le mode d'exceptions asynchrone non récupérable,
PR_FP_EXC_ASYNC
pour le mode d'exceptions asynchrone récupérable,
PR_FP_EXC_PRECISE
pour le mode d'exception précis.
- PR_GET_FPEXC
-
(Depuis Linux 2.4.21, 2.5.32, seulement sur PowerPC)
Renvoie le mode d'exception virgule flottante dans
arg2.
VALEUR RENVOYÉE
Les options
PR_GET_DUMPABLE
et
PR_GET_KEEPCAPS
renvoient 0 ou 1.
Toutes les autres options renvoient zéro en cas de réussite,
et -1 en cas d'échec, auquel cas
errno
contient le code d'erreur approprié.
ERREURS
- EINVAL
-
La valeur de l'argument
option
n'est pas reconnue, ou bien il s'agit de
PR_SET_PDEATHSIG
et
arg2
n'est pas un numéro de signal ou un zéro.
VERSIONS
L'appel système
prctl()
a été introduit dans Linux 2.1.57.
CONFORMITÉ
Cet appel système est spécifique à Linux.
IRIX dispose d'un appel système
prctl()
(également 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 maximum de processus
par utilisateur, le nombre maximal de processeurs utilisables par un
processus, vérifier si un processus est bloqué, lire ou fixer la
taille des piles, etc.
VOIR AUSSI
signal(2),
core(5)
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 28 avril 1998
et révisée le 23 juin 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 2 prctl ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- VERSIONS
-
- CONFORMITÉ
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 23 juin 2008