.\" -*- 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 "31 octombrie 2023" "Pagini de manual de Linux 6.06" .SH NUME dlsym, dlvsym \- obține adresa unui simbol dintr\-un obiect partajat sau executabil .SH BIBLIOTECA Bibliotecă de legături dinamice (\fIlibdl\fP, \fI\-ldl\fP) .SH REZUMAT .nf \fB#include \fP .P \fBvoid *dlsym(void *restrict \fP\fIhandle\fP\fB, const char *restrict \fP\fIsymbol\fP\fB);\fP .P \fB#define _GNU_SOURCE\fP \fB#include \fP .P \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 DESCRIERE Funcția \fBdlsym\fP() primește un gestionar, „handle” al unui obiect partajat încărcat dinamic returnat de \fBdlopen\fP(3) împreună cu un nume de simbol cu terminație nulă și returnează adresa la care simbolul respectiv este încărcat în memorie. În cazul în care simbolul nu este găsit în obiectul specificat sau în oricare dintre obiectele partajate care au fost încărcate automat de \fBdlopen\fP(3) la încărcarea obiectului respectiv, \fBdlsym\fP() returnează NULL; (căutarea efectuată de \fBdlsym\fP() se face în primul rând pe lățime prin arborele de dependență al acestor obiecte partajate). .P În cazuri neobișnuite (a se vedea NOTE), valoarea simbolului poate fi de fapt NULL. Prin urmare, o returnare NULL de la \fBdlsym\fP() nu trebuie neapărat să indice o eroare. Modul corect de a distinge o eroare de un simbol a cărui valoare este NULL este să se apeleze \fBdlerror\fP(3) pentru a șterge orice condiții de eroare vechi, apoi să se apeleze \fBdlsym\fP() și apoi să se apeleze din nou \fBdlerror\fP(3), salvând valoarea de întoarcere a acestuia într\-o variabilă și să se verifice dacă această valoare salvată nu este NULL. .P Există doi pseudo\-gestionari speciali care pot fi specificați în \fIhandle\fP: .TP \fBRTLD_DEFAULT\fP Găsește prima apariție a simbolului dorit utilizând ordinea implicită de căutare a obiectelor partajate. Căutarea va include simbolurile globale din executabil și din dependențele sale, precum și simbolurile din obiectele partajate care au fost încărcate dinamic cu fanionul \fBRTLD_GLOBAL\fP. .TP \fBRTLD_NEXT\fP Găsește următoarea apariție a simbolului dorit în ordinea de căutare după obiectul curent. Acest lucru permite să se furnizeze o învăluire în jurul unei funcții dintr\-un alt obiect partajat, astfel încât, de exemplu, definiția unei funcții dintr\-un obiect partajat preîncărcat (a se vedea \fBLD_PRELOAD\fP în \fBld.so\fP(8)) să poată găsi și invoca funcția „reală” furnizată într\-un alt obiect partajat (sau, de asemenea, „următoarea” definiție a funcției în cazurile în care există mai multe niveluri de preîncărcare). .P Macroul de testare a caracteristicii \fB_GNU_SOURCE\fP trebuie să fie definit pentru a obține definițiile \fBRTLD_DEFAULT\fP și \fBRTLD_NEXT\fP din \fI\fP. .P Funcția \fBdlvsym\fP() face același lucru ca \fBdlsym\fP(), dar primește un șir de versiuni ca argument suplimentar. .SH "VALOAREA RETURNATĂ" În caz de succes, aceste funcții returnează adresa asociată cu \fIsymbol\fP. În caz de eșec, acestea returnează NULL; cauza erorii poate fi diagnosticată cu ajutorul \fBdlerror\fP(3). .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBdlsym\fP(), \fBdlvsym\fP() T} Siguranța firelor MT\-Safe .TE .SH STANDARDE .TP \fBdlsym\fP() POSIX.1\-2008. .TP \fBdlvsym\fP() GNU. .SH ISTORIC .TP \fBdlsym\fP() glibc 2.0. POSIX.1\-2001. .TP \fBdlvsym\fP() glibc 2.1. .SH NOTE .\" Există mai multe scenarii în care adresa unui simbol global este NULL. De exemplu, un simbol poate fi plasat la adresa zero de către editorul de legături, prin intermediul unui script al editorului de legături sau cu ajutorul opțiunii din linia de comandă \fI\-\-defsym\fP. Simbolurile slabe „weak” nedefinite au, de asemenea, valoarea NULL. În cele din urmă, valoarea simbolului poate fi rezultatul unei funcții de rezolvare a unei funcții indirecte GNU (IFUNC) care returnează NULL ca valoare rezolvată. În acest din urmă caz, \fBdlsym\fP() returnează, de asemenea, NULL fără eroare. Cu toate acestea, în primele două cazuri, comportamentul editorului de legături dinamice GNU este inconsecvent: procesarea realocării reușește și se poate observa că simbolul are valoarea NULL, dar \fBdlsym\fP() eșuează și \fBdlerror\fP() indică o eroare de căutare. .SS Istoric Funcția \fBdlsym\fP() face parte din API dlopen, derivată din SunOS. Acest sistem nu dispune de \fBdlvsym\fP(). .SH EXEMPLE A se vedea \fBdlopen\fP(3). .SH "CONSULTAȚI ȘI" \fBdl_iterate_phdr\fP(3), \fBdladdr\fP(3), \fBdlerror\fP(3), \fBdlinfo\fP(3), \fBdlopen\fP(3), \fBld.so\fP(8) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .