Loading

NOM

       uselib - Sélectionner une bibliothèque partagée

SYNOPSIS

       #include <unistd.h>

       int uselib(const char *library);

       L’appel  système  uselib()  permet de charger une bibliothèque partagée
       qui sera utilisée par le processus appelant.  Il  prend  un  chemin  de
       fichier  comme  argument.  L’adresse  où  charger  la  bibliothèque est
       trouvée dans la bibliothèque  elle-même.  La  bibliothèque  peut  avoir
       n’importe quel format de binaire reconnu.

VALEUR RENVOYÉE

       En  cas  de  réussite,  zéro est renvoyé, sinon -1 est renvoyé et errno
       contient le code d’erreur.

ERREURS

       En plus de toutes les erreurs déclenchées par open(2) et  mmap(2),  les
       erreurs suivantes peuvent se produire :

       EACCES La  bibliothèque  indiquée  par  library n’est pas accessible en
              lecture ou en écriture, ou l’appelant n’a pas la  permission  de
              parcours  pour  l’un  des  répertoires  du  chemin.  (Voir aussi
              path_resolution(7).)

       ENFILE La limite du nombre total de fichiers ouverts sur le  système  a
              été atteinte.

       ENOEXEC
              Le  fichier  décrit  par library n’est pas un exécutable de type
              connu (par exemple n’a pas le bon nombre magique).

CONFORMITÉ

       uselib() est spécifique à Linux et ne devrait pas être employé dans des
       programmes destinés à être portables.

NOTES

       uselib() était utilisé par le code de démarrage d’anciennes versions de
       libc  pour  charger  les  bibliothèques  partagées  dont  les  noms  se
       trouvaient dans un tableau dans le binaire.

       Depuis  libc  4.3.2,  le  code de démarrage essaie de préfixer ces noms
       avec "/usr/lib", "/lib" puis "" avant d’abandonner. À partir de la libc
       4.3.4,  ces  noms  sont  recherchés dans les répertoires listés dans la
       variable LD_LIBRARY_PATH, et les préfixes  "/usr/lib",  "/lib"  et  "/"
       sont essayés ensuite si la bibliothèque n’a pas été trouvée.

       À  partir  de  la  libc 4.4.4, seule la bibliothèque « /lib/ld.so » est
       chargée, afin que  cette  bibliothèque  dynamique  puisse  charger  les
       autres bibliothèques requises (à nouveau avec cette fonction). Ceci est
       également valable pour libc5.

       glibc2 n’utilise pas cette fonction.

VOIR AUSSI

       ar(1),   gcc(1),   ld(1),   ldd(1),   mmap(2),   open(2),    dlopen(3),
       capabilities(7), ld.so(8)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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