Scroll to navigation

GETAUXVAL(3) Manuel du programmeur Linux GETAUXVAL(3)

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.

L'adresse de base de l'interpréteur du programme (l'éditeur de liens dynamique en général).
Une chaîne identifiant la plateforme réelle ; peut être différente de AT_PLATFORM (PowerPC seulement).
La fréquence utilisée par times(2) pour compter. Cette valeur peut aussi être obtenue avec sysconf(_SC_CLK_TCK).
La taille du bloc de cache de données.
Le GID effectif du thread.
L'adresse d'entrée de l'exécutable.
L'UID effectif du thread.
Le descripteur de fichier du programme.
Le nom de chemin utilisé pour exécuter le programme.
Les attributs (inutilisé).
Le mot de contrôle FPU utilisé (architecture SuperH seulement). Cela donne quelques renseignements sur l'initialisation FPU réalisée par le noyau.
Le GID réel du thread.
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.
La taille du bloc de cache d'instructions.
La taille de page du système (la même valeur que celle renvoyée par sysconf(_SC_PAGESIZE)).
L'adresse des en-têtes du programme de l'exécutable.
La taille de l'entrée des en-têtes du programme.
Le nombre d'en-têtes du programme.
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.
L'adresse de seize octets contenant une valeur aléatoire.
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)).
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).
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.
La taille du bloc de cache unifié.
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.

CONFORMITÉ

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.52 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 à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».

7 novembre 2012 GNU