focal (3) realpath.3.gz

Provided by: manpages-de-dev_2.16-1_all bug

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.

       ┌──────────────┬───────────────────────┬─────────┐
       │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.03  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)