getauxval(3) Library Functions Manual getauxval(3) NOM getauxval - Recuperer une valeur du vecteur auxiliaire BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include unsigned long getauxval(unsigned long type); DESCRIPTION La fonction getauxval() recupere des valeurs du vecteur auxiliaire, un mecanisme que le chargeur de binaires ELF du noyau utilise pour passer certains renseignements a l'espace utilisateur quand un programme est execute. Toutes les entrees du vecteur auxiliaire sont des paires de valeurs : un type qui identifie ce que l'entree represente et une valeur pour ce type. En fonction de l'argument type, getauxval() renvoie la valeur correspondante. Les valeurs renvoyees pour tous les types sont donnees dans la liste suivante. Les differentes valeurs de type ne sont pas toutes presentes sur toutes les architectures. AT_BASE L'adresse de base de l'interpreteur du programme (l'editeur de liens dynamiques en general). AT_BASE_PLATFORM Un pointeur vers une chaine (PowerPC et MIPS seulement). Sur PowerPC, cette chaine identifie la plateforme reelle et elle peut etre differente de AT_PLATFORM. Sur MIPS, elle identifie le niveau ISA (depuis Linux 5.7). AT_CLKTCK La frequence utilisee par times(2) pour compter. Cette valeur peut aussi etre obtenue avec sysconf(_SC_CLK_TCK). AT_DCACHEBSIZE La taille du bloc de cache de donnees. AT_EGID Le GID effectif du thread. AT_ENTRY L'adresse d'entree de l'executable. AT_EUID L'UID effectif du thread. AT_EXECFD Le descripteur de fichier du programme. AT_EXECFN Un pointeur vers une chaine contenant le nom de chemin utilise pour executer le programme. AT_FLAGS Drapeaux (inutilise). AT_FPUCW Le mot de controle de FPU utilise (architecture SuperH seulement). Cette information donne quelques renseignements sur l'initialisation FPU realisee par le noyau. AT_GID Le GID reel du thread. AT_HWCAP Un masque de bits, dependant de l'architecture et de l'ABI, qui precise les capacites detaillees du processeur. Le contenu du masque de bits depend du materiel (consultez par exemple le fichier arch/x86/include/asm/cpufeature.h des sources du noyau pour obtenir des precisions sur l'architecture x86 ; la valeur renvoyee est le premier mot sur 32 bits du tableau qui y est decrit). Une version humainement lisible des memes renseignements est disponible dans /proc/cpuinfo. AT_HWCAP2 (depuis la glibc 2.18) Autres indications dependant de la machine a propos des capacites du processeur. AT_ICACHEBSIZE La taille du bloc de cache d'instructions. AT_L1D_CACHEGEOMETRY La geometrie du cache de donnees L1 codee avec la taille d'une ligne de cache en octets dans les 16 bits inferieurs et l'associativite du cache dans les 16 bits suivants. L'associativite est telle que si N est la valeur sur 16 bits, le cache est associatif par ensembles de N blocs. AT_L1D_CACHESIZE La taille du cache de donnees L1. AT_L1I_CACHEGEOMETRY La geometrie du cache d'instructions L1 codee de la meme maniere que AT_L1D_CACHEGEOMETRY. AT_L1I_CACHESIZE La taille du cache d'instructions L1. AT_L2_CACHEGEOMETRY La geometrie du cache L2 codee de la meme maniere que AT_L1D_CACHEGEOMETRY. AT_L2_CACHESIZE La taille du cache L2. AT_L3_CACHEGEOMETRY La geometrie du cache L3 codee de la meme maniere que AT_L1D_CACHEGEOMETRY. AT_L3_CACHESIZE La taille du cache L3. AT_PAGESZ La taille de page du systeme (la meme valeur que celle renvoyee par sysconf(_SC_PAGESIZE)). AT_PHDR L'adresse des en-tetes du programme de l'executable. AT_PHENT La taille de l'entree des en-tetes du programme. AT_PHNUM Le nombre d'en-tetes du programme. AT_PLATFORM Un pointeur vers une chaine qui identifie la plate-forme materielle sur laquelle le programme est execute. L'editeur de liens dynamiques utilise cette chaine dans l'interpretation des valeurs rpath. AT_RANDOM L'adresse de seize octets contenant une valeur aleatoire. AT_SECURE Cet attribut possede une valeur non nulle si l'executable doit etre traite de facon securisee. Le plus souvent, une valeur non nulle indique que le processus execute un binaire set-user-ID ou set-group-ID (si bien que ses UID ou GID reels et effectifs sont differents) ou qu'il acquiert des capacites (<< capabilities >>) en executant un fichier binaire qui possede des capacites (voir capabilities(7)) ; sinon, une valeur non nulle pourrait etre attribuee par un module de securite Linux. Quand cette valeur est non nulle, l'editeur de liens dynamiques desactive l'utilisation de certaines variables d'environnement (consultez ld-linux.so(8)) et la glibc modifie d'autres facettes de son comportement (consultez aussi secure_getenv(3)). AT_SYSINFO Le point d'entree vers la fonction d'appel systeme dans le vDSO. N'est ni present ni necessaire sur toutes les architectures (par exemple absent sur x86-64). AT_SYSINFO_EHDR L'adresse d'une page contenant le vDSO (objet partage dynamique virtuel, << virtual dynamic shared object >>) que le noyau cree pour fournir des implementations rapides de certains appels systemes. AT_UCACHEBSIZE La taille du bloc de cache unifie. AT_UID L'UID reel du thread. VALEUR RENVOYEE Si elle reussit, getauxval() renvoie la valeur correspondant au type. Si type n'est pas trouve, la valeur renvoyee est 0. ERREURS ENOENT (depuis la glibc 2.19) Aucune entree correspondant au type n'a pu etre trouvee dans le vecteur auxiliaire. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |getauxval() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ STANDARDS GNU. HISTORIQUE glibc 2.16. NOTES Le principal utilisateur des renseignements du vecteur auxiliaire est l'editeur de liens dynamiques 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'editeur de liens a souvent ou toujours besoin. Dans certains cas, les memes renseignements pourraient etre obtenus a l'aide d'appels systeme, mais l'utilisation du vecteur auxiliaire est moins couteuse. Le vecteur auxiliaire reside juste au-dessus de la liste d'arguments et de l'environnement dans l'espace d'adresse du processus. Le vecteur auxiliaire fourni a un programme peut etre affiche en definissant la variable d'environnement LD_SHOW_AUXV lors de l'execution d'un programme : $ LD_SHOW_AUXV=1 sleep 1 Le vecteur auxiliaire de n'importe quel processus peut (en fonction des droits du fichier) etre obtenu dans /proc/pid/auxv. Consultez proc(5) pour obtenir de plus amples renseignements. BOGUES Avant l'ajout du code d'erreur ENOENT a partir de la glibc 2.19, il n'existait aucun moyen de distinguer sans ambiguite le cas ou type n'avait pas pu etre trouve du cas ou la valeur correspondant a type etait egale a zero. VOIR AUSSI execve(2), secure_getenv(3), vdso(7), ld-linux.so(8) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Lucien Gentis Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 getauxval(3)