Provided by: manpages-de-dev_4.15.0-9_all bug

BEZEICHNUNG

       realpath - gibt den standardisierten absoluten Pfadnamen zurück

ÜBERSICHT

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

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

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

       realpath():
           _XOPEN_SOURCE >= 500
               || /* Glibc seit 2.19: */ _DEFAULT_SOURCE
               || /* Glibc <= 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.

       ┌───────────────────────────────────────────────────────┬───────────────────────┬─────────┐
       │SchnittstelleAttributWert    │
       ├───────────────────────────────────────────────────────┼───────────────────────┼─────────┤
       │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.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 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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.

                                          22. März 2021                               REALPATH(3)