USELIB(2) Linux-Programmierhandbuch USELIB(2)

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.

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.

Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

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

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).)
Die systemweite Beschränkung für die Gesamtzahl offener Dateien wurde erreicht.
Die Datei, die durch bibliothek angegeben wird, ist keine ausführbare Datei eines bekannten Typs. Sie hat zum Beispiel nicht die richtigen magischen Zahlen.

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

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 (vor Glibbc 2.0) wurde uselib() benutzt, um die gemeinsam benutzten Bibliotheken zu laden, die mit Namen in einem Namensfeld in der Binärdatei gefunden wurden.

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

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

Diese Seite ist Teil der Veröffentlichung 5.13 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 die Mailingliste der Übersetzer.

22. März 2021 Linux