Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dlsym(3X) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dlclose(3X)

dlerror(3X)

dlopen(3X)

dlsym(3X)                                                         dlsym(3X)

NAME
     dlsym - Symboladresse in gemeinsam nutzbarem Objekt berechnen

SYNTAX
     cc [flag ...] file ... -ldl [library ...]

     #include <dlfcn.h>

     void *dlsym(void *handle, char *name);

BESCHREIBUNG
     dlsym() erlaubt einem Prozeß, die Adresse eines Symbols zu berechnen,
     das in einem gemeinsam nutzbaren Objekt definiert ist. Das Objekt muß
     zuvor durch dlopen() geöffnet worden sein. handle ist der Wert, den
     der Aufruf von dlopen() als Ergebnis lieferte; das entsprechende
     gemeinsam nutzbare Objekt darf seither nicht durch dlclose() geschlos-
     sen worden sein. name ist der Name des Symbols als Zeichenkette.
     dlsym() sucht nach dem angegebenen Symbol in allen gemeinsam nutzbaren
     Objekten, die durch das Laden des durch handle bezeichneten Objekts
     automatisch geladen wurden [siehe dlopen(3X)].

BEISPIELE
     Das folgende Beispiel zeigt, wie dlopen() und dlsym() dazu verwendet
     werden können, auf Funktionen oder auf Datenobjekte zuzugreifen. Der
     Einfachheit halber wurde die Fehlerbehandlung weggelassen.

          void *handle;
          int i, *iptr;
          int (*fptr)(int);

          /* Öffnen des benötigten Objekts */
          handle = dlopen("/usr/mydir/libx.so", RTLDLAZY);

          /* Suchen der Adresse einer Funktion und eines
             Datenobjekts */
          fptr = (int (*)(int))dlsym(handle, "somefunction");

          iptr = (int *)dlsym(handle, "intobject");

          /* Aufruf der Funktion mit Übergabe des Datenobjekts als
             Parameter */
          i = (*fptr)(*iptr);

ERGEBNIS
     Wenn handle kein gültiges Objekt bezeichnet, das durch dlopen() geöff-
     net wurde, oder wenn das angegebene Symbol in den mit handle im Zusam-
     menhang stehenden Objekten nicht gefunden werden kann, liefert dlsym()
     den Wert NULL als Ergebnis. Genauere Informationen über die Fehlerur-
     sache stehen über die Funktion dlerror() zur Verfügung.

SIEHE AUCH
     dlclose(3X), dlerror(3X), dlopen(3X).



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

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