NOM

uselib - Sélectionner une bibliothèque partagée

SYNOPSIS

#include <unistd.h>
[[deprecated]] int uselib(const char *bibliothèque);

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

En cas de succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno est définie pour préciser l'erreur.

ERREURS

En plus de tous les codes d’erreurs renvoyés par open(2) et mmap(2), les codes suivants peuvent aussi être renvoyés :
EACCES
La bibliothèque indiquée par bibliothèque 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 pour le système entier a été atteinte.
ENOEXEC
Le fichier décrit par bibliothèque n'est pas un exécutable de type connu (par exemple n'a pas le bon nombre magique).

STANDARDS

uselib() est spécifique à Linux et ne devrait pas être employé dans des programmes destinés à être portables.

NOTES

Cet appel système obsolète n'est pas pris en charge par la glibc. Il n'est pas déclaré dans les en-têtes de la glibc mais, par un caprice de l'histoire, la glibc avant la glibc 2.23 fournissait une interface binaire pour cet appel système. Ainsi, il suffisait de déclarer manuellement l'interface dans votre code pour utiliser cet appel système. Sinon, vous pouvez l'invoquer en utilisant syscall(2).
Dans les anciennes versions de la libc (avant la glibc 2.0), uselib() était utilisé pour charger les bibliothèques partagées dont les noms se trouvaient dans un tableau de noms dans le binaire.
Depuis Linux 3.15, cet appel système n'est disponible que si le noyau a été configuré avec l'option CONFIG_USELIB.

VOIR AUSSI

ar(1), gcc(1), ld(1), ldd(1), mmap(2), open(2), dlopen(3), capabilities(7), ld.so(8)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]>, David Prévot <[email protected]> et Jean-Pierre Giraud <[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à [email protected]

Recommended readings

Pages related to uselib you should read also: