Man page - dlvsym(3)

Packages contains this manual

Available languages:

en fr ru ro

Manual

dlsym

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ATTRIBUTS
STANDARDS
HISTORIQUE
NOTES
Historique
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

dlsym, dlvsym - Obtenir l’adresse d’un symbole dans un objet ou exĂ©cutable partagĂ©

BIBLIOTHÈQUE

BibliothĂšque de liens dynamiques ( libc , -lc )

SYNOPSIS

#include <dlfcn.h>

void *dlsym(void *restrict handle , const char *restrict symbol );

#define _GNU_SOURCE
#include <dlfcn.h>

void *dlvsym(void *restrict handle , const char *restrict symbol ,
const char *restrict
version );

DESCRIPTION

La fonction dlsym () prend comme arguments un « descripteur » d’un objet partagĂ© et chargĂ© dynamiquement renvoyĂ© par dlopen () et un nom de symbole terminĂ© par l’octet NULL final, et renvoie l’adresse oĂč ce symbole a Ă©tĂ© chargĂ© en mĂ©moire. Si le symbole n’est pas trouvĂ©, soit dans l’objet spĂ©cifiĂ©, soit dans n’importe quels objets chargĂ©s automatiquement par dlopen () lorsque ces objets ont Ă©tĂ© chargĂ©s, dlsym () renvoie NULL. La recherche effectuĂ©e par dlsym () est d’abord en largeur Ă  travers l’arbre des dĂ©pendances de ces objets partagĂ©s.

Dans certains cas inhabituels (voir NOTES), le symbole peut vraiment avoir la valeur NULL. Par consĂ©quent, une valeur NULL renvoyĂ©e par dlsym () n’indique pas nĂ©cessairement une erreur. La bonne maniĂšre de distinguer une erreur d’un symbole ayant NULL pour valeur est d’appeler dlerror () pour effacer toute ancienne condition d’erreur, puis d’appeler dlsym () et enfin d’appeler dlerror () une nouvelle fois en sauvegardant sa valeur de retour dans une variable pour finalement vĂ©rifier si la valeur sauvegardĂ©e n’est pas NULL.

Il y a deux pseudo-descripteurs qui peuvent ĂȘtre spĂ©cifiĂ©s dans handle :
RTLD_DEFAULT

Trouver la premiĂšre occurence du symbole recherchĂ© en utilisant l’ordre de recherche par dĂ©faut pour objet partagĂ©. La recherche inclut les symboles globaux dans l’exĂ©cutable et ses dĂ©pendances de mĂȘme que les symboles dans les objets partagĂ©s chargĂ©s dynamiquement avec le drapeau RTLD_GLOBAL .

RTLD_NEXT

Trouver la prochaine occurrence du symbole recherchĂ© dans l’ordre de recherche aprĂšs l’objet courant. Cela permet de fournir une enveloppe autour d’une fonction dans un autre objet partagĂ© de façon Ă  ce que, par exemple, la dĂ©finition d’une fonction dans un objet partagĂ© prĂ©chargĂ© (voir LD_PRELOAD dans ld.do (8)) peut trouver et invoquer la fonction « rĂ©elle » fournie dans un autre objet partagĂ© (ou bien la « prochaine » dĂ©finition de la fonction dans les cas oĂč il y a plusieurs couches de prĂ©chargement).

La macro de test de fonctionnalitĂ© _GNU_SOURCE doit ĂȘtre dĂ©finie pour obtenir les dĂ©finitions de RTLD_DEFAULT et RTLD_NEXT depuis <dlfcn.h> .

La fonction dlvsym () effectue la mĂȘme chose que dlsym () mais prend une version sous forme de chaĂźne comme argument supplĂ©mentaire.

VALEUR RENVOYÉE

En cas de succĂšs, ces fonctions renvoient l’adresse associĂ©e au symbol . En cas d’erreur, elles renvoient NULL ; la cause de l’erreur peut ĂȘtre diagnostiquĂ©e avec dlerror (3).

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3883687-1.png

STANDARDS

dlsym ()

POSIX.1-2008.

dlvsym ()

GNU.

HISTORIQUE

dlsym ()

glibc 2.0. POSIX.1-2001.

dlvsym ()

glibc 2.1.

NOTES

Il y a plusieurs scenarios pour lesquels l’adresse d’un symbole global a la valeur NULL. Par exemple, un symbole peut ĂȘtre placĂ© Ă  l’adresse zĂ©ro par l’éditeur de liens via un script d’éditeur de liens ou avec l’option en ligne de commande --defsym . Les symboles faibles non dĂ©finis ont Ă©galement NULL pour valeur. Enfin, la valeur du symbole peut ĂȘtre le rĂ©sultat d’une fonction de rĂ©solution de fonction indirecte GNU (IFUNC) qui renvoie NULL comme valeur de rĂ©solution. Dans ce dernier cas, dlsym () renvoie Ă©galement NULL sans erreur. Cependant, dans les deux cas prĂ©cĂ©dents, le comportement de l’éditeur de liens dynamiques de GNU n’est pas uniforme : le traitement des relocalisations rĂ©ussit et la valeur du symbole peut ĂȘtre NULL, mais dlsym () Ă©choue et dlerror () indique une erreur de recherche.

Historique

La fonction dlsym () fait partie de l’API de dlopen, dĂ©rivĂ©e de SunOS. Ce systĂšme ne possĂšde pas dlvsym ().

EXEMPLES

Consultez dlopen (3).

VOIR AUSSI

dl_iterate_phdr (3), dladdr (3), dlerror (3), dlinfo (3), dlopen (3), 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 Grégoire Scano <gregoire.scano@malloc.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 .