Scroll to navigation

uselib(2) System Calls Manual uselib(2)

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 :

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).)
La limite du nombre total de fichiers ouverts pour le système entier a été atteinte.
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 <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 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.

7 janvier 2023 Pages du manuel de Linux 6.03