Provided by: manpages-de-dev_0.10-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():
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

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-Zeiger 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 Entweder ist pfad oder aufgeloester_pfad NULL. (In  Libc5  würde
              dies  nur eine Schutzverletzung verursachen.) Aber lesen Sie die
              folgenden ANMERKUNGEN.

       EIO    Während des Lesens aus dem Dateisystem trat ein E/A-Fehler auf.

       ELOOP  Während  der  Umwandlung  des   Pfadnamens   traten   zu   viele
              symbolische Links auf.

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

       ENOENT Die genannte Datei existiert nicht.

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

VERSIONEN

       Auf Linux erschien diese Funktion in Libc 4.5.21.

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.)

       Die 4.4BSD-, Linux- and SUSv2-Versionen  geben  immer  einen  absoluten
       Pfadnamen  zurück.  Solaris kann einen relativen Pfadnamen zurückgeben,
       wenn das Argument pfad relativ ist. Der Prototyp von realpath() wird in
       <unistd.h>  in  Libc4  und  Libc5  angegeben,  aber  sonst  überall  in
       <stdlib.h>.

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.

       Die   Implementierungen   von   Libc4   und   Libc5   enthalten   einen
       Pufferüberlauf   (behoben    in    Llibc-5.4.13).    Daher    benötigen
       SUID-Programme, wie mount(8), eine private Version.

SIEHE AUCH

       readlink(2),    canonicalize_file_name(3),    getcwd(3),   pathconf(3),
       sysconf(3)

KOLOPHON

       Diese  Seite  ist  Teil  der   Veröffentlichung   3.32   des   Projekts
       Linux-man-pages.  Eine Beschreibung des Projekts und Informationen, wie
       Fehler    gemeldet     werden     können,     finden     sich     unter
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
       <krd@gulu.net> und Chris Leick <c.leick@vollbio.de> 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>.

                              20. September 2010                   REALPATH(3)