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 (objet partagé dynamique
virtuel, « 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.
ATTRIBUTS¶
Multithreading (voir pthreads(7))¶
La fonction
getauxval() est sûre dans un contexte multithread.
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),
vdso(7),
ld-linux.so(8)
COLOPHON¶
Cette page fait partie de la publication 3.65 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> ».