Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

       getauxval - Récupérer une valeur du vecteur auxiliaire

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

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 sur toutes les architectures.

       AT_BASE
              L'adresse de base de l'interpréteur du programme (l'éditeur de liens dynamiques en général).

       AT_BASE_PLATFORM
              Un  pointeur  vers  une chaîne (PowerPC et MIPS seulement). Sur PowerPC, cette chaîne identifie la
              plateforme réelle et elle peut être différente de AT_PLATFORM. Sur MIPS, elle identifie le  niveau
              ISA (depuis Linux 5.7).

       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
              Un pointeur vers une chaîne contenant le nom de chemin utilisé pour exécuter le programme.

       AT_FLAGS
              Drapeaux (inutilisé).

       AT_FPUCW
              Le mot de contrôle de  FPU  utilisé  (architecture  SuperH  seulement).  Cette  information  donne
              quelques renseignements sur l'initialisation FPU réalisée par le noyau.

       AT_GID Le GID réel du thread.

       AT_HWCAP
              Un  masque  de bits, dépendant de l'architecture et de l'ABI, qui précise les capacités détaillées
              du processeur. 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 ; la valeur renvoyée est le premier mot  sur  32 bits  du  tableau  qui  y  est
              décrit).   Une   version   humainement  lisible  des  mêmes  renseignements  est  disponible  dans
              /proc/cpuinfo.

       AT_HWCAP2 (depuis la glibc 2.18)
              Autres indications dépendant de la machine à propos des capacités du processeur.

       AT_ICACHEBSIZE
              La taille du bloc de cache d'instructions.

       AT_L1D_CACHEGEOMETRY
              La géométrie du cache de données L1 codée avec la taille d'une ligne de cache en octets  dans  les
              16 bits  inférieurs  et  l'associativité  du  cache dans les 16 bits suivants. L'associativité 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 données L1.

       AT_L1I_CACHEGEOMETRY
              La géométrie du cache d'instructions L1 codée de la même manière que AT_L1D_CACHEGEOMETRY.

       AT_L1I_CACHESIZE
              La taille du cache d'instructions L1.

       AT_L2_CACHEGEOMETRY
              La géométrie du cache L2 codée de la même manière que AT_L1D_CACHEGEOMETRY.

       AT_L2_CACHESIZE
              La taille du cache L2.

       AT_L3_CACHEGEOMETRY
              La géométrie du cache L3 codée de la même manière que AT_L1D_CACHEGEOMETRY.

       AT_L3_CACHESIZE
              La taille du cache L3.

       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  dynamiques  utilise cette chaîne dans l'interprétation des valeurs
              rpath.

       AT_RANDOM
              L'adresse de seize octets contenant une valeur aléatoire.

       AT_SECURE
              Cet attribut possède une valeur non nulle si l'exécutable doit être traité de façon sécurisée.  Le
              plus  souvent,  une  valeur  non  nulle indique que le processus exécute un binaire set-user-ID ou
              set-group-ID (si bien que ses UID ou GID réels et effectifs sont différents) ou qu'il acquiert des
              capacités (« capabilities ») en exécutant un fichier  binaire  qui  possède  des  capacités  (voir
              capabilities(7)) ;  sinon,  une valeur non nulle pourrait être attribuée par un module de sécurité
              Linux. Quand cette valeur est non nulle, l'éditeur de liens dynamiques désactive 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'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é, la valeur
       renvoyée est 0.

ERREURS

       ENOENT (depuis la glibc 2.19)
              Aucune entrée correspondant au type n'a pu être trouvée dans le vecteur auxiliaire.

VERSIONS

       La fonction getauxval() est disponible depuis la glibc 2.16.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌──────────────────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │ InterfaceAttributValeur  │
       ├──────────────────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │ getauxval()                                                          │ Sécurité des threads │ MT-Safe │
       └──────────────────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       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  dynamiques
       ld-linux.so(8). Le vecteur auxiliaire est un raccourci pratique et efficace qui permet au noyau de commu‐
       niquer  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.

BOGUES

       Avant l'ajout du code d'erreur ENOENT à partir de la glibc 2.19, il n'existait aucun moyen de  distinguer
       sans  ambiguïté  le cas où type n'avait pas pu être trouvé du cas où la valeur correspondant à type était
       égale à zéro.

VOIR AUSSI

       execve(2), secure_getenv(3), vdso(7), ld-linux.so(8)

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry Vignaud <tvi‐
       gnaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe  Guérard  <fe‐
       vrier@tigreraye.org>,  Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@de‐
       bian.org>,  Thomas  Huriaux  <thomas.huriaux@gmail.com>,   Nicolas   François   <nicolas.francois@centra‐
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
       Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Lucien Gentis <lucien.gentis@wai‐
       ka9.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à  de‐
       bian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.03                    7 janvier 2023                                     getauxval(3)