dladdr(3X) dladdr(3X)
NAME
dladdr - Einer Adresse ein Symbol zuordnen
SYNTAX
cc [option ...] datei ... -ldl [bibliothek ...]
#include <dlfcn.h>
int dladdr(void *address, Dlinfo *dlip);
BESCHREIBUNG
dladdr() ist eine der Funktionen, mit denen der Benutzer direkten
Zugriff auf die Möglichkeiten des dynamischen Binders hat. Diese Rou-
tinen stehen über die Bibliothek libdl.so zur Verfügung.
Hinweis: Diese Routinen sind ausschließlich in dynamisch gebundenen
Programmen verfügbar.
dladdr() ermittelt, ob die angegebene Adresse innerhalb einer der
geladenen Objekte, die den Adreßraum der aktuellen Anwendung bilden,
liegt. Es wird angenommen, daß eine Adresse zu einem geladenen Objekt
gehört, wenn sie zwischen der Basisadresse und der end-Adresse dieses
Objekts liegt. Wenn eins der geladenen Objekte diese Kriterien
erfüllt, wird die Symboltabelle, über die der dynamische Binder ver-
fügt, durchsucht, um das Symbol zu finden, das der angegebenen Adresse
am nächsten kommt. Das nächste Symbol ist dasjenige, das eine Adresse
kleiner oder gleich der geforderten Adresse hat.
Für die Struktur Dlinfo muß vom Benutzer vorab Speicher bereitge-
stellt werden. Die Komponenten der Struktur werden auf der Basis der
angebenen Adresse von dladdr() gefüllt. Die Struktur Dlinfo umfaßt
folgende Komponenten:
const char *dlifname;
void *dlifbase;
const char *dlisname;
void *dlisaddr;
sizet dlisize;
int dlibind;
int dlitype;
Es folgt eine Beschreibung dieser Komponenten.
dlifname Enthält einen Zeiger auf den Dateinamen des betreffenden
Objekts.
dlifbase Enthält die Basis-Adresse des betreffenden Objekts.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
dladdr(3X) dladdr(3X)
dlisname Enthält einen Zeiger auf das Symbol, das der angebenen
Adresse am nächsten kommt. Dieses Symbol hat entweder die-
selbe Adresse oder ist das nächste Symbol mit einer nie-
drigeren Adresse.
dlisaddr Enthält die tatsächliche Adresse des oben genannten Sym-
bols.
dlisize Enthält die Größe in Byte des oben genannten Symbols.
dlibind Enthält die Binder-Attribute des oben genannten Symbols.
dlitype Enthält den Typ des oben genannten Symbols.
ERGEBNIS
Wenn die angegebene Adresse keinem der geladenen Objekte zugeordnet
werden kann, wird eine 0 zurückgeliefert. Andernfalls wird eine Zahl
ungleich Null zurückgeliefert und die betreffenden Dlinfo-Elemente
gefüllt.
HINWEISE
Die Dlinfo-Zeigerelemente zeigen auf Adressen innerhalb der geladenen
Objekte. Diese Objekte können ungültig werden, falls Objekte vor den-
jenigen Elementen, die gerade benutzt werden, entfernt werden [siehe
dlclose(3X)].
Falls kein Symbol zur Beschreibung der angegebenen Adresse gefunden
wird, werden sowohl die Komponenten von dlisname als auch von
dlisaddr auf 0 gesetzt.
SIEHE AUCH
ld(1), dlclose(3X), dlerror(3X), dlopen(3X), dlsym(3X).
Kapitel "Das C-Übersetzungssystem" in Leitfaden und Werkzeuge für die
Programmierung mit C.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98