Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dladdr(3X) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ld(1)

dlclose(3X)

dlerror(3X)

dlopen(3X)

dlsym(3X)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026