Linux |
CentOS 5.3 |
|
uselib(2) |
uselib − Charger une bibliothèque partagée. |
#include <unistd.h> int uselib(const char *library); |
L’appel système uselib() sert à charger une bibliothèque partagée qui sera utilisée par le processus appelant. On lui fournit un chemin. L’adresse où charger est trouvée dans la bibliothèque elle-même. cette bibliothèque peut avoir tout format binaire reconnu. |
uselib() renvoie 0 s’il réussit, −1 s’il échoue auquel cas errno contient le code d’erreur. |
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(2).) |
|
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 doit pas être employé dans des programmes destinés à être portables. |
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 bianire. 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. Dans la libc 4.3.4 et suivantes, 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. Depuis la libc 4.4.4, seule la bibliothèque « /lib/ld.so » est chargée, de sorte que cette bibliothèque dynamique peut charger les autres bibliothèques nécessaires (utilisant également cet appel). C’est également l’état des choses dans la libc5 glibc2 n’utilise pas cet appel. |
ar(1), gcc(1), ld(1), ldd(1), mmap(2), open(2), dlopen(3), capability(7), ld.so(8) |
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 14 juin 2006. 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=en man 2 uselib ». N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. |
uselib(2) |