Provided by: manpages-de-dev_2.16-1_all bug

BEZEICHNUNG

       uselib - eine gemeinsam benutzte Bibliothek laden

ÜBERSICHT

       #include <unistd.h>

       int uselib(const char *bibliothek);

       Anmerkung:   In   den   Glibc-Headern  wird  keine  Deklaration  für  diesen  Systemaufruf
       bereitgestellt, siehe ANMERKUNGEN.

BESCHREIBUNG

       Der Systemaufruf uselib() dient dazu, eine gemeinsam benutzte Bibliothek für  die  Nutzung
       durch  den  aufrufenden Prozess zu laden. Ihr wird ein Pfadname übergeben. Die Ladeadresse
       befindet sich wird in der Bibliothek selbst. Die Bibliothek  kann  jedes  bekannte  binäre
       Format haben.

RÜCKGABEWERT

       Bei  Erfolg  wird  Null  zurückgegeben.  Bei  einem Fehler wird -1 zurückgegeben und errno
       entsprechend gesetzt.

FEHLER

       Zusätzlich zu all den Fehlercodes, die  von  open(2)  und  mmap(2)  zurückgegeben  werden,
       können auch folgende auftreten:

       EACCES Die  durch  bibliothek  angegebene Bibliothek hat kein Lese- oder Ausführrecht oder
              der Aufrufende hat kein Suchrecht für eines der Verzeichnisse im Pfadpräfix. (Siehe
              auch path_resolution(7).)

       ENFILE Die systemweite Beschränkung für die Gesamtzahl offener Dateien wurde erreicht.

       ENOEXEC
              Die  Datei,  die durch bibliothek angegeben wird, ist keine ausführbare Datei eines
              bekannten Typs. Sie hat zum Beispiel nicht die richtigen magischen Zahlen.

KONFORM ZU

       uselib() ist Linux-spezifisch und sollte nicht in portierbaren Programmen benutzt werden.

ANMERKUNGEN

       Dieser veraltete Systemaufruf wird von Glibc nicht unterstützt. In den Glibc-Headern  wird
       keine  Deklaration  bereitgestellt, allerdings exportierten Glibc-Versionen vor 2.23 durch
       eine Laune der Geschichte  eine  ABI  für  diesen  Systemaufruf.  Um  diesen  Systemaufruf
       einzusetzen,  reichte  es  aus,  manuell  die  Schnittstelle in Ihrem Code zu deklarieren;
       alternativ könnten Sie den Systemaufruf mittels syscall(2) auslösen.

       In uralten Libc-Versionen wurde uselib() benutzt, um die gemeinsam benutzten  Bibliotheken
       zu laden, die mit Namen in einem Namensfeld in der Binärdatei gefunden wurden.

       Seit  Libc  4.3.2  versucht  der  Anfangscode  diesen  Namen  »/usr/lib«,  »/lib«  und  »«
       voranzustellen, bevor er aufgibt. In Libc 4.3.4 und  danach  werden  diese  Namen  in  den
       Verzeichnissen gesucht, die im LD_LIBRARY_PATH gefunden werden. Falls diese nicht gefunden
       werden, werden »/usr/lib«, »/lib« und »/« ausprobiert.

       Seit Libc 4.4.4 wird nur noch die Bibliothek »lib/ld.so« geladen, so dass diese dynamische
       Bibliothek  die  verbleibenden  benötigten  Bibliotheken  laden  kann  (wieder  mit diesem
       Aufruf). Dies ist auch der Stand der Dinge in Libc5.

       Glibc2 benutzt diesen Aufruf nicht.

       Seit Linux 3.15 ist der Systemaufruf nur  verfügbar,  falls  der  Kernel  mit  der  Option
       CONFIG_USELIB konfiguriert wurde.

SIEHE AUCH

       ar(1), gcc(1), ld(1), ldd(1), mmap(2), open(2), dlopen(3), capabilities(7), ld.so(8)

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  5.03  des  Projekts  Linux-man-pages. Eine
       Beschreibung des Projekts, Informationen, wie Fehler  gemeldet  werden  können  sowie  die
       aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die    deutsche    Übersetzung    dieser    Handbuchseite    wurde    von   Hanno   Wagner
       <wagner@bidnix.bid.fh-hannover.de>,  Chris  Leick  <c.leick@vollbio.de>  und  Dr.   Tobias
       Quathamer <toddy@debian.org> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die GNU General Public License
       Version  3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE   HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.