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