USELIB(2)

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

SYNOPSIS
#include <unistd.h>

[[deprecated]] 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. 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, les versions de glibc antérieures à 2.23 fournissaient 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 (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.