realpath(3C) realpath(3C)
NAME
realpath - Echten Dateinamen ausgeben
SYNTAX
#include <stdlib.h>
#include <sys/param.h>
char *realpath(char *filename, char *resolvedname);
BESCHREIBUNG
realpath() löst alle Links und Referenzen für "." und ".." in
filename auf und speichert sie in resolvedname.
Es können sowohl relative als auch absolute Pfadnamen verarbeitet wer-
den. Bei absoluten Pfadnamen und relativen Pfadnamen, deren aufgelö-
ster Name nicht relativ ausgedrückt werden kann (z. B. ../../reldir),
wird der aufgelöste absolute Name zurückgegeben. Für die anderen rela-
tiven Pfadnamen wird der aufgelöste relative Name zurückgegeben.
resolvedname muß groß genug sein (MAXPATHLEN), um den aufgelösten
Pfadnamen aufzunehmen.
ERGEBNIS
Bei erfolgreicher Ausführung liefert realpath() einen Zeiger auf
resolvedname zurück. Ansonsten wird ein Nullzeiger zurückgegeben und
der Name der Datei, die den Fehler verursacht hat, nach resolvedname
geschrieben. Die globale Variable errno wird gesetzt.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Die Funktion realpath() schlägt bei folgenden Bedingungen fehl:
EACCES Für eine Komponente von filename wurde die Lese- oder
Suchberechtigung verweigert.
EINVAL Entweder das Argument filename oder resolvedname ist
ein Nullzeiger.
EIO Beim Lesen vom Dateisystem oder Schreiben auf dieses
trat ein Fehler auf.
ELOOP Bei der Auflösung von path sind zu viele symbolische
Links aufgetreten.
ENAMETOOLONG Die Länge des Arguments path überschreitet PATHMAX,
oder eine Komponente des Pfadnamens ist länger als
NAMEMAX.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
realpath(3C) realpath(3C)
ENOENT Eine Komponente von filename gibt keine vorhandene
Datei an, oder filename zeigt auf eine leere Zeichen-
kette.
ENOTDIR Eine Komponente des Pfadpräfixes ist kein Verzeichnis.
Die Funktion realpath() kann bei folgenden Bedingungen fehlschlagen:
ENAMETOOLONG Die Auflösung des Pfadnamens eines symbolischen Links
hat ein Zwischenergebnis erzeugt, dessen Länge PATHMAX
überschreitet.
ENOMEM Es ist nicht genügend Speicherplatz verfügbar.
HINWEISE
realpath() behandelt nullterminierte Zeichenketten.
Sie sollten Ausführungsrechte für alle Verzeichnisse besitzen, die
sich im gegebenen und aufgelösten Pfad befinden.
Falls ein Fehler auftritt, kann realpath() unter Umständen nicht zum
aktuellen Verzeichnis zurückkehren.
SIEHE AUCH
getcwd(3C), sysconf(3C), stdlib(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98