.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1995 Yggdrasil Computing, Incorporated. .\" and Copyright 2003, 2015 Michael Kerrisk .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH dlsym 3 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM dlsym, dlvsym \- Obtenir l'adresse d'un symbole dans un objet ou exécutable partagé .SH BIBLIOTHÈQUE Bibliothèque de liens dynamiques (\fIlibdl\fP, \fI\-ldl\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBvoid *dlsym(void *restrict \fP\fIhandle\fP\fB, const char *restrict \fP\fIsymbol\fP\fB);\fP .PP \fB#define _GNU_SOURCE\fP \fB#include \fP .PP \fBvoid *dlvsym(void *restrict \fP\fIhandle\fP\fB, const char *restrict \fP\fIsymbol\fP\fB,\fP \fB const char *restrict \fP\fIversion\fP\fB);\fP .fi .SH DESCRIPTION La fonction \fBdlsym\fP() prend comme arguments un «\ descripteur\ » d'un objet partagé et chargé dynamiquement renvoyé par \fBdlopen\fP() 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 \fBdlopen\fP() lorsque ces objets ont été chargés, \fBdlsym\fP() renvoie NULL. La recherche effectuée par \fBdlsym\fP() est d'abord en largeur à travers l'arbre des dépendances de ces objets partagés. .PP Dans certains cas inhabituels (voir NOTES), le symbole peut vraiment avoir la valeur NULL. Par conséquent, une valeur NULL renvoyée par \fBdlsym\fP() 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 \fBdlerror\fP() pour effacer toute ancienne condition d'erreur, puis d'appeler \fBdlsym\fP() et enfin d'appeler \fBdlerror\fP() 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. .PP Il y a deux pseudo\-descripteurs qui peuvent être spécifiés dans \fIhandle\fP\ : .TP \fBRTLD_DEFAULT\fP 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 \fBRTLD_GLOBAL\fP. .TP \fBRTLD_NEXT\fP 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 \fBLD_PRELOAD\fP dans \fBld.do\fP(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). .PP La macro de test de fonctionnalité \fB_GNU_SOURCE\fP doit être définie pour obtenir les définitions de \fBRTLD_DEFAULT\fP et \fBRTLD_NEXT\fP depuis \fI\fP. .PP La fonction \fBdlvsym\fP() effectue la même chose que \fBdlsym\fP() mais prend une version sous forme de chaîne comme argument supplémentaire. .SH "VALEUR RENVOYÉE" En cas de succès, ces fonctions renvoient l'adresse associée au \fIsymbol\fP. En cas d'erreur, elles renvoient NULL\ ; la cause de l'erreur peut être diagnostiquée avec \fBdlerror\fP(3). .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBdlsym\fP(), \fBdlvsym\fP() T} Sécurité des threads MT\-Safe .TE .sp 1 .SH STANDARDS .TP \fBdlsym\fP() POSIX.1\-2008. .TP \fBdlvsym\fP() GNU. .SH HISTORIQUE .TP \fBdlsym\fP() glibc 2.0. POSIX.1\-2001. .TP \fBdlvsym\fP() glibc\ 2.1. .SH 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 \fI\-\-defsym\fP. 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, \fBdlsym\fP() 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 \fBdlsym\fP() échoue et \fBdlerror\fP() indique une erreur de recherche. .SS Historique La fonction \fBdlsym\fP() fait partie de l'API de dlopen, dérivée de SunOS. Ce système ne possède pas \fBdlvsym\fP(). .SH EXEMPLES Consultez \fBdlopen\fP(3). .SH "VOIR AUSSI" \fBdl_iterate_phdr\fP(3), \fBdladdr\fP(3), \fBdlerror\fP(3), \fBdlinfo\fP(3), \fBdlopen\fP(3), \fBld.so\fP(8) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Grégoire Scano . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .