realpath

REALPATH(3)                 Linux-Programmierhandbuch                REALPATH(3)



BEZEICHNUNG
       realpath - gibt den standardisierten absoluten Pfadnamen zurück

ÜBERSICHT
       #include <limits.h>
       #include <stdlib.h>

       char *realpath(const char *pfad, char *aufgeloester_pfad);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       realpath():
           _XOPEN_SOURCE >= 500
               || /* Glibc seit 2.19: */ _DEFAULT_SOURCE
               || /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE

BESCHREIBUNG
       realpath expandiert alle symbolischen Links und löst Referenzen auf ».«,
       »..« und zusätzlichen »/«-Zeichen in der durch Null beendeten
       Zeichenkette pfad auf, um einen standardisierten absoluten Pfadnamen zu
       erzeugen. Der resultierende Pfadname wird als Zeichenkette, die durch
       Null beendet wird, in dem Puffer mit maximal PATH_MAX Byte gespeichert,
       auf den aufgeloester_pfad zeigt. Der resultierende Pfad enthält weder
       einen symbolischen Link noch die Komponenten ».« und »..«.

       Falls aufgeloester_pfad als NULL angegeben wurde, benutzt realpath()
       malloc(3), um den Puffer des aufgelösten Pfadnamens von PATH_MAX Byte zu
       reservieren und gibt einen Zeiger auf diesen Puffer zurück. Der
       Aufrufende sollte den reservierten Speicher dieses Puffers mit free(3)
       freigeben.

RÜCKGABEWERT
       Wenn kein Fehler auftritt, gibt realpath() einen Zeiger auf
       aufgeloester_pfad zurück.

       Anderenfalls wird ein NULL zurückgegeben, der Inhalt des Feldes
       aufgeloester_pfad ist unbestimmt und errno wird gesetzt, um den Fehler
       anzuzeigen.

FEHLER
       EACCES Der Lese- oder Suchzugriff für eine Komponente des Pfad-Präfixes
              wurde verweigert.

       EINVAL pfad ist NULL. (In Glibc-Versionen vor 2.3 wird dieser Fehler auch
              zurückgegeben, wenn aufgeloester_pfad NULL ist.)

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

       ELOOP  Beim Übersetzen des Pfadnamens wurden zu viele symbolische Links
              vorgefunden.

       ENAMETOOLONG
              Eine Komponente eines Pfadnameds überschreitet NAME_MAX Zeichen
              oder ein ganzer Pfadname überschreitet NAME_MAX Zeichen.

       ENOENT Die angegebene Datei existiert nicht.

       ENOMEM Speicher aufgebraucht.

       ENOTDIR
              Eine Komponente des Pfad-Präfixes ist kein Verzeichnis.

ATTRIBUTE
       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt
       verwandten Ausdrücke.

       ┌──────────────┬───────────────────────┬─────────┐
       │Schnittstelle Attribut              Wert    │
       ├──────────────┼───────────────────────┼─────────┤
       │realpath()    │ Multithread-Fähigkeit │ MT-Safe │
       └──────────────┴───────────────────────┴─────────┘
KONFORM ZU
       4.4BSD, POSIX.1-2001.

       Laut POSIX.1-2001 ist das Verhalten, wenn aufgeloester_pfad NULL ist,
       abhängig von der Implementierung. POSIX.1-2008 spezifiziert das
       Verhalten, das auf dieser Seite beschrieben wird.

ANMERKUNGEN
       Auf 4.4BSD und Solaris ist die Längenbeschränkung des Pfadnamens
       MAXPATHLEN (in <sys/param.h>). SUSv2 schreibt vor, dass PATH_MAX und
       NAME_MAX in <limits.h> stehen oder von der Funktion pathconf(3)
       bereitgestellt werden. Ein typischer Quellcode-Ausschnitt könnte wie
       folgt aussehen

           #ifdef PATH_MAX
             path_max = PATH_MAX;
           #else
             path_max = pathconf(path, _PC_PATH_MAX);
             if (path_max <= 0)
               path_max = 4096;
           #endif

       (Aber lesen Sie den Abschnitt FEHLER.)

   GNU-Erweiterungen
       Falls der Aufruf entweder mit EACCES oder ENOENT fehlschlägt und
       aufgeloester_pfad nicht NULL ist, wird das Präfix vom pfad, der nicht
       lesbar ist oder nicht existiert, in aufgeloester_pfad zurückgegeben.

FEHLER
       Die POSIX.1-2001-Standardversion dieser Funktion ist durch ihre Bauart
       kaputt, da es unmöglich ist eine passende Größe des Ausgabepuffers
       aufgeloester_pfad zu bestimmen. Gemäß POSIX.1-2001 reicht ein Puffer der
       Größe PATH_MAX aus, aber PATH_MAX muss keine definierte Konstante sein
       und könnte durch die Benutzung von pathconf(3) erlangt werden. Die
       Abfrage von pathconf(3) hilft nicht wirklich, da POSIX einerseits warnt,
       dass das Ergebnis groß und für die Speicherreservierung ungeeignet sein
       könnte und andererseits könnte pathconf(3) -1 zurückgeben, um zu
       kennzeichnen, dass PATH_MAX unbegrenzt ist. Die Eigenschaft
       aufgeloester_pfad == NULL die nicht in POSIX.1-2001, jedoch in
       POSIX.1-2008 standardisiert ist, ermöglicht es, dieses Bauartproblem zu
       vermeiden.

SIEHE AUCH
       realpath(1), readlink(2), canonicalize_file_name(3), getcwd(3),
       pathconf(3), sysconf(3)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.08 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 Patrick Rother
       <krd@gulu.net>, Chris Leick <c.leick@vollbio.de> und Mario Blättermann
       <mario.blaettermann@gmail.com> 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>.



                               15. September 2017                    REALPATH(3)