NOM¶
uselib - Sélectionner une bibliothèque partagée
SYNOPSIS¶
#include <unistd.h>
int uselib(const char *library);
DESCRIPTION¶
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¶
S'il réussit, cet appel système renvoie 0. S'il échoue, il
renvoie -1 et remplit
errno en conséquence.
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.
(Consultez 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).
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.65 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¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et
l'équipe francophone de traduction de Debian (2006-2009).
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> ».