USELIB
Section : Manuel du programmeur Linux (
2)
Mise à jour de la version anglaise : 9 janvier 2005
Index
Menu principal
NOM
uselib - Charger 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.
On lui fournit un chemin de fichier comme argument.
L'adresse où charger la bibliothèque est trouvée dans la bibliothèque elle-même.
Cette bibliothèque peut avoir n'importe quel format binaire reconnu.
VALEUR RENVOYÉE
Cet appel système renvoie 0 s'il réussit, -1 s'il échoue auquel cas
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'a pas les permissions de lecture ou d'exécution, 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 doit pas être employé
dans des programmes destinés à être portables.
NOTES
uselib()
était utilisé par le code de démarrage de la précédente libc
pour charger les bibliothèques partagées dont les noms se trouvaient
dans un tableau de noms dans le binaire.
Depuis la libc 4.3.2, le code de démarrage essaie de préfixer
ces noms avec "usr/lib", "/lib" et "" avant d'abandonner.
Depuis la libc 4.3.4, ces noms sont recherchés
dans les répertoires trouvés dans
LD_LIBRARY_PATH,
et s'il n'y sont pas trouvés, les prefixes « /usr/lib »,
« /lib » et « / » sont essayés.
À partir de la libc 4.4.4, seule la bibliothèque « /lib/ld.so » est chargée,
de sorte que cette bibliothèque dynamique puisse charger les autres
bibliothèques nécessaires (utilisant également cet appel).
Ceci est également valable pour la libc5.
glibc2 n'utilise pas cet appel.
VOIR AUSSI
ar(1),
gcc(1),
ld(1),
ldd(1),
mmap(2),
open(2),
dlopen(3),
capabilities(7),
ld.so(8)
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 15 octobre 1996
et révisée le 23 juin 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 2 uselib ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- CONFORMITÉ
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 23 juin 2008