.\" -*- coding: UTF-8 -*- .\" Copyright (C) 1999 Andries Brouwer (aeb@cwi.nl) .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Rewritten old page, 990824, aeb@cwi.nl .\" 2004-12-14, mtk, added discussion of resolved_path == NULL .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH REALPATH 3 "15. September 2017" "" Linux\-Programmierhandbuch .SH BEZEICHNUNG realpath \- gibt den standardisierten absoluten Pfadnamen zurück .SH ÜBERSICHT .nf \fB#include \fP \fB#include \fP .PP \fBchar *realpath(const char *\fP\fIpfad\fP\fB, char *\fP\fIaufgeloester_pfad\fP\fB);\fP .fi .PP .in -4n Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .in .PP \fBrealpath\fP(): .ad l .RS 4 .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 || /* Glibc seit 2.19: */ _DEFAULT_SOURCE || /* Glibc\-Versionen <= 2.19: */ _BSD_SOURCE .RE .ad .SH BESCHREIBUNG \fBrealpath\fP expandiert alle symbolischen Links und löst Referenzen auf \fI».«\fP, \fI»..«\fP und zusätzlichen \fI»/«\fP\-Zeichen in der durch Null beendeten Zeichenkette \fIpfad\fP auf, um einen standardisierten absoluten Pfadnamen zu erzeugen. Der resultierende Pfadname wird als Zeichenkette, die durch Null beendet wird, in dem Puffer mit maximal \fBPATH_MAX\fP Byte gespeichert, auf den \fIaufgeloester_pfad\fP zeigt. Der resultierende Pfad enthält weder einen symbolischen Link noch die Komponenten \fI».«\fP und \fI»..«\fP. .PP .\" Even if we use resolved_path == NULL, then realpath() will still .\" return ENAMETOOLONG if the resolved pathname would exceed PATH_MAX .\" bytes -- MTK, Dec 04 .\" .SH HISTORY .\" The .\" .BR realpath () .\" function first appeared in 4.4BSD, contributed by Jan-Simon Pendry. Falls \fIaufgeloester_pfad\fP als NULL angegeben wurde, benutzt \fBrealpath\fP() \fBmalloc\fP(3), um den Puffer des aufgelösten Pfadnamens von \fBPATH_MAX\fP Byte zu reservieren und gibt einen Zeiger auf diesen Puffer zurück. Der Aufrufende sollte den reservierten Speicher dieses Puffers mit \fBfree\fP(3) freigeben. .SH RÜCKGABEWERT Wenn kein Fehler auftritt, gibt \fBrealpath\fP() einen Zeiger auf \fIaufgeloester_pfad\fP zurück. .PP Anderenfalls wird ein NULL zurückgegeben, der Inhalt des Feldes \fIaufgeloester_pfad\fP ist unbestimmt und \fIerrno\fP wird gesetzt, um den Fehler anzuzeigen. .SH FEHLER .TP \fBEACCES\fP Der Lese\- oder Suchzugriff für eine Komponente des Pfad\-Präfixes wurde verweigert. .TP \fBEINVAL\fP .\" (In libc5 this would just cause a segfault.) \fIpfad\fP ist NULL. (In Glibc\-Versionen vor 2.3 wird dieser Fehler auch zurückgegeben, wenn \fIaufgeloester_pfad\fP NULL ist.) .TP \fBEIO\fP Beim Lesen vom Dateisystem trat ein E/A\-Fehler (engl. I/O) auf. .TP \fBELOOP\fP Beim Übersetzen des Pfadnamens wurden zu viele symbolische Links vorgefunden. .TP \fBENAMETOOLONG\fP Eine Komponente eines Pfadnameds überschreitet \fBNAME_MAX\fP Zeichen oder ein ganzer Pfadname überschreitet \fBNAME_MAX\fP Zeichen. .TP \fBENOENT\fP Die angegebene Datei existiert nicht. .TP \fBENOMEM\fP Speicher aufgebraucht. .TP \fBENOTDIR\fP Eine Komponente des Pfad\-Präfixes ist kein Verzeichnis. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lb lb lb l l l. Schnittstelle Attribut Wert T{ \fBrealpath\fP() T} Multithread\-Fähigkeit MT\-Safe .TE .SH "KONFORM ZU" 4.4BSD, POSIX.1\-2001. .PP Laut POSIX.1\-2001 ist das Verhalten, wenn \fIaufgeloester_pfad\fP NULL ist, abhängig von der Implementierung. POSIX.1\-2008 spezifiziert das Verhalten, das auf dieser Seite beschrieben wird. .SH ANMERKUNGEN Auf 4.4BSD und Solaris ist die Längenbeschränkung des Pfadnamens \fBMAXPATHLEN\fP (in \fI\fP). SUSv2 schreibt vor, dass \fBPATH_MAX\fP und \fBNAME_MAX\fP in \fI\fP stehen oder von der Funktion \fBpathconf\fP(3) bereitgestellt werden. Ein typischer Quellcode\-Ausschnitt könnte wie folgt aussehen .PP .in +4n .EX #ifdef PATH_MAX path_max = PATH_MAX; #else path_max = pathconf(path, _PC_PATH_MAX); if (path_max <= 0) path_max = 4096; #endif .EE .in .PP (Aber lesen Sie den Abschnitt FEHLER.) .PP .\" 2012-05-05, According to Casper Dik, the statement about .\" Solaris was not true at least as far back as 1997, and .\" may never have been true. .\" .\" The 4.4BSD, Linux and SUSv2 versions always return an absolute .\" pathname. .\" Solaris may return a relative pathname when the .\" .I path .\" argument is relative. .\" The prototype of .\" .BR realpath () .\" is given in \fI\fP in libc4 and libc5, .\" but in \fI\fP everywhere else. .SS GNU\-Erweiterungen Falls der Aufruf entweder mit \fBEACCES\fP oder \fBENOENT\fP fehlschlägt und \fIaufgeloester_pfad\fP nicht NULL ist, wird das Präfix vom \fIpfad\fP, der nicht lesbar ist oder nicht existiert, in \fIaufgeloester_pfad\fP zurückgegeben. .SH FEHLER .\" .LP .\" The libc4 and libc5 implementation contained a buffer overflow .\" (fixed in libc-5.4.13). .\" Thus, set-user-ID programs like .\" .BR mount (8) .\" needed a private version. Die POSIX.1\-2001\-Standardversion dieser Funktion ist durch ihre Bauart kaputt, da es unmöglich ist eine passende Größe des Ausgabepuffers \fIaufgeloester_pfad\fP zu bestimmen. Gemäß POSIX.1\-2001 reicht ein Puffer der Größe \fBPATH_MAX\fP aus, aber \fBPATH_MAX\fP muss keine definierte Konstante sein und könnte durch die Benutzung von \fBpathconf\fP(3) erlangt werden. Die Abfrage von \fBpathconf\fP(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 \fBpathconf\fP(3) \-1 zurückgeben, um zu kennzeichnen, dass \fBPATH_MAX\fP unbegrenzt ist. Die Eigenschaft \fIaufgeloester_pfad\ ==\ NULL\fP die nicht in POSIX.1\-2001, jedoch in POSIX.1\-2008 standardisiert ist, ermöglicht es, dieses Bauartproblem zu vermeiden. .SH "SIEHE AUCH" \fBrealpath\fP(1), \fBreadlink\fP(2), \fBcanonicalize_file_name\fP(3), \fBgetcwd\fP(3), \fBpathconf\fP(3), \fBsysconf\fP(3) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 4.16 des Projekts Linux\-\fIman\-pages\fP. 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/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother , Chris Leick und Mario Blättermann 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 .