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