USELIB(2)

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

SYNOPSIS
#include <unistd.h>

int uselib(const char *bibliothèque);

Remarque : cet appel système n'est pas déclaré par les en-têtes de la glibc ; consultez la section NOTES.

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éfini pour indiquer 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).

CONFORMITÉ
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. Aucune déclaration n'est fournie dans les en-têtes de la glibc, mais, par une bizarrerie historique, les versions de la glibc antérieures à 2.23 exportaient une ABI pour cet appel système. Par conséquent, pour utiliser cet appel système, il suffisait de déclarer l'interface dans votre code ; de manière alternative, il est possible d'invoquer l'appel système 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)

COLOPHON
Cette page fait partie de la publication 5.13 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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 <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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 à debian-l10n-french@lists.debian.org.