READLINK(2)

NAME
readlink - Ermittelt das Ziel eines symbolischen Links

ÜBERSICHT
#include <unistd.h>

int readlink(const char *path, char *buf, size_t bufsiz);

BESCHREIBUNG
Readlink ermittelt den Pfad, auf den der symbolische Link path zeigt. Das Ergebnis wird in den Puffer buf geschrieben, der die Größe bufsiz hat. Readlink schreibt kein NUL-Zeichen, d.h. in buf steht nicht unbedingt ein gültiger C-String.

RÜCKGABEWERTE
Der Aufruf gibt die Anzahl der in den Puffer geschriebenen Bytes zurück. Trat ein Fehler auf, dann wird -1 zurückgeliefert und die globale Variable errno entsprechend gesetzt.

FEHLER

ENOTDIR
    Eine Komponente des Pfades ist kein Verzeichnis.

EINVAL
    Der Pfadname enthält ein Zeichen, bei dem das "high-order" Bit gesetzt ist.

ENAMETOOLONG
    Eine Komponente des Pfades ist länger als 255 Zeichen, oder der gesamte Pfad ist länger als 1023 Zeichen.

ENOENT
    Der angegebene Dateiname existiert nicht.

EACCES
    Für ein Teil des Pfades fehlt die Sucherlaubnis.

ELOOP
    Beim Ermitteln des Originalpfades wurden zu viele symbolische Links festgestellt.

EINVAL
    Die angegebene Datei ist kein symbolischer Link.

EIO Beim Lesen vom Dateisystem trat ein E/A-Fehler ("I/O-error") auf.

EFAULT
    Buf überschreitet den Adressbereich dieses Prozesses.

HERKUNFT
Der readlink-Funktionsaufruf erschien in BSD 4.2.

SIEHE AUCH
stat(2), lstat(2), symlink(2).