NOM¶
getauxval - Récupérer une valeur du vecteur auxiliaire
SYNOPSIS¶
#include <sys/auxv.h>
unsigned long getauxval(unsigned long type);
DESCRIPTION¶
La fonction
getauxval() récupère des valeurs du vecteur
auxiliaire, un mécanisme que le chargeur de binaires ELF du noyau utilise
pour passer certains renseignements à l'espace utilisateur quand un
programme est exécuté.
Toutes les entrées du vecteur auxiliaire sont des paires de valeurs :
un type qui identifie ce que l'entrée représente, et une valeur pour
ce type. En fonction de l'argument
type,
getauxval() renvoie la
valeur correspondante.
Les valeurs renvoyées pour tous les types sont données dans la liste
suivante. Les différentes valeurs de
type ne sont pas toutes
présentes suivant l'architecture.
- AT_BASE
- L'adresse de base de l'interpréteur du programme
(l'éditeur de liens dynamique en général).
- AT_BASE_PLATFORM
- Une chaîne identifiant la plateforme
réelle ; peut être différente de AT_PLATFORM
(PowerPC seulement).
- AT_CLKTCK
- La fréquence utilisée par times(2) pour
compter. Cette valeur peut aussi être obtenue avec
sysconf(_SC_CLK_TCK).
- AT_DCACHEBSIZE
- La taille du bloc de cache de données.
- AT_EGID
- Le GID effectif du thread.
- AT_ENTRY
- L'adresse d'entrée de l'exécutable.
- AT_EUID
- L'UID effectif du thread.
- AT_EXECFD
- Le descripteur de fichier du programme.
- AT_EXECFN
- Le nom de chemin utilisé pour exécuter le
programme.
- AT_FLAGS
- Les attributs (inutilisé).
- AT_FPUCW
- Le mot de contrôle FPU utilisé (architecture
SuperH seulement). Cela donne quelques renseignements sur l'initialisation
FPU réalisée par le noyau.
- AT_GID
- Le GID réel du thread.
- AT_HWCAP
- Un pointeur vers un masque multioctet de bits dont les
réglages indiquent des capacités processeurs
détaillées. Le contenu du masque de bits dépend du
matériel (consultez par exemple le fichier
arch/x86/include/asm/cpufeature.h des sources du noyau pour obtenir
des précisions sur l'architecture x86). Une version lisible des
mêmes renseignements est disponible dans /proc/cpuinfo.
- AT_ICACHEBSIZE
- La taille du bloc de cache d'instructions.
- AT_PAGESZ
- La taille de page du système (la même valeur que
celle renvoyée par sysconf(_SC_PAGESIZE)).
- AT_PHDR
- L'adresse des en-têtes du programme de
l'exécutable.
- AT_PHENT
- La taille de l'entrée des en-têtes du
programme.
- AT_PHNUM
- Le nombre d'en-têtes du programme.
- AT_PLATFORM
- Un pointeur vers une chaîne qui identifie la
plate-forme matérielle sur laquelle le programme est
exécuté. L'éditeur de liens dynamique utilise cela dans
l'interprétation des valeurs rpath.
- AT_RANDOM
- L'adresse de seize octets contenant une valeur
aléatoire.
- AT_SECURE
- Une valeur non nulle si l'exécutable devrait être
traité de façon sécurisée. Le plus souvent, une valeur
non nulle indique que le processus exécute un programme Set-UID ou
Set-GID ; sinon, une valeur non nulle pourrait être
provoquée par un module de sécurité Linux. Quand cette
valeur est non nulle, l'éditeur de liens dynamique désactive
l'utilisation de certaines variables d'environnement (consultez
ld-linux.so(8)) et glibc modifie d'autres facettes de son
comportement (consultez aussi secure_getenv(3)).
- AT_SYSINFO
- Le point d'entrée vers la fonction d'appel
système dans le VDSO. N'est ni présent ni nécessaire sur
toutes les architectures (par exemple absent sur x86-64).
- AT_SYSINFO_EHDR
- L'adresse d'une page contenant le VDSO (« Virtual
Dynamic Shared Object ») que le noyau crée pour fournir des
implémentations rapides de certains appels systèmes.
- AT_UCACHEBSIZE
- La taille du bloc de cache unifié.
- AT_UID
- L'UID réel du thread.
VALEUR RENVOYÉE¶
Si elle réussit,
getauxval() renvoie la valeur correspondant au
type. Si
type n'est pas trouvé, 0 est renvoyé.
ERREURS¶
Aucune erreur n'est diagnostiquée.
VERSIONS¶
La fonction
getauxval() est disponible depuis la glibc 2.16.
Cette fonction est une extension non normalisée de la glibc.
NOTES¶
Le principal utilisateur des renseignements du vecteur auxiliaire est
l'éditeur de liens dynamique
ld-linux.so(8). Le vecteur auxiliaire
est un raccourci pratique et efficace qui permet au noyau de communiquer un
certain jeu de renseignements standards dont l'éditeur de liens a souvent
ou toujours besoin. Dans certains cas, les mêmes renseignements
pourraient être obtenus à l'aide d'appels système, mais
l'utilisation du vecteur auxiliaire est moins coûteuse.
Le vecteur auxiliaire réside juste au-dessus de la liste d'arguments et de
l'environnement dans l'espace d'adresse du processus. Le vecteur auxiliaire
fourni à un programme peut être affiché en définissant la
variable d'environnement
LD_SHOW_AUXV lors de l'exécution d'un
programme :
$ LD_SHOW_AUXV=1 sleep 1
Le vecteur auxiliaire de n'importe quel processus peut (en fonction des droits
du fichier) être obtenu dans
/proc/PID/auxv. Consultez
proc(5) pour obtenir de plus amples renseignements.
VOIR AUSSI¶
secure_getenv(3),
ld-linux.so(8)
Le fichier
Documentation/ABI/stable/vdso des sources du noyau
COLOPHON¶
Cette page fait partie de la publication 3.44 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
<
http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande «
man -L C
<section> <page_de_man> ».