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 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.

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 <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.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@waika9.com>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 à ⟨debian-l10n-french@lists.debian.org⟩.