Provided by: manpages-de-dev_1.11-1_all bug

BEZEICHNUNG

       getcwd, getwd, get_current_dir_name - das aktuelle Verzeichnis abfragen

ÜBERSICHT

       #include <unistd.h>

       char *getcwd(char *Puffer, size_t Größe);

       char *getwd(char *Puffer);

       char *get_current_dir_name(void);

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

       get_current_dir_name():
              _GNU_SOURCE

       getwd():
           Seit Glibc 2.12:
               _BSD_SOURCE ||
                   (_XOPEN_SOURCE >= 500 ||
                       _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
                   !(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
           Vor Glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

BESCHREIBUNG

       Diese  Funktionen  geben  eine Zeichenkette mit abschließender Null zurück, die einen absoluten Pfadnamen
       enthält, der dem aktuellen Arbeitsverzeichnis des aufrufenden Prozesses entspricht. Der Pfadname wird als
       das Funktionsergebnis und, falls vorhanden, über das Argument Puffer zurückgegeben.

       If the current directory is not below the root directory  of  the  current  process  (e.g.,  because  the
       process  set  a  new filesystem root using chroot(2)  without changing its current directory into the new
       root), then, since Linux 2.6.36, the returned path will be prefixed with the string "(unreachable)". Such
       behavior can also be caused by an unprivileged user by changing the current directory into another  mount
       namespace.  When  dealing  with  paths from untrusted sources, callers of these functions should consider
       checking whether the returned path starts with '/' or '(' to avoid misinterpreting an unreachable path as
       a relative path.

       Die Funktion getcwd() kopiert den absoluten Pfadnamen des aktuellen Arbeitsverzeichnisses  in  das  Feld,
       auf das Puffer zeigt und das Größe Byte lang ist.

       Falls  die  Länge  des absoluten Pfadnamens des Arbeitsverzeichnisses, einschließlich abschließender Null
       Größe Byte überschreitet, wird NULL zurückgegeben und errno auf ERANGE  gesetzt.  Eine  Anwendung  sollte
       prüfen, ob dieser Fehler auftrat und falls nötig einen größeren Puffer reservieren.

       Als  eine Erweiterung des POSIX.1-2001-Standards reserviert getcwd() der Linux-Glibc den Puffer dynamisch
       durch Verwendung von malloc(3), wenn Puffer NULL ist. In diesem Fall hat der reservierte Puffer die Länge
       Größe, sofern Gräße nicht Null ist, wenn die für Puffer  nötige  Größe  reserviert  ist.  Der  Aufrufende
       sollte den zurückgegebenen Puffer mit free(3) freigeben.

       get_current_dir_name()  wird  mit  malloc(3)  ein  Feld reservieren, das groß genug ist, um den absoluten
       Pfadnamen des aktuellen Arbeitsverzeichnisses aufzunehmen. Wenn die Umgebungsvariable PWD gesetzt ist und
       ihr Wert stimmt, dann wird dieser Wert zurückgegeben. Der Aufrufende sollte  den  zurückgegebenen  Puffer
       mit free(3) freigeben.

       getwd()  reserviert keinen Speicher mit malloc(3). Das Argument Puffer sollte ein Zeiger auf ein Feld mit
       einer Mindestlänge von PATH_MAX Byte sein.  Falls  die  Länge  des  absoluten  Pfadnamens  des  aktuellen
       Arbeitsverzeichnisses einschließlich des abschließenden Null-Bytes PATH_MAX Byte überschreitet, wird NULL
       zurückgegeben  und  errno auf ENAMETOOLONG gesetzt. (Beachten Sie, dass PATH_MAX auf einigen Systemen zur
       Kompilierzeit möglicherweise keine Konstante ist; außerdem hängt ihr Wert  vom  Dateisystem  ab  –  siehe
       pathconf(3).) Aus Gründen der Portierbarkeit und Sicherheit ist die Benutzung von getwd() missbilligt.

RÜCKGABEWERT

       Bei  Erfolg  geben  diese  Funktionen  einen  Zeiger  auf eine Zeichenkette zurück, die den Pfadnamen des
       aktuellen Arbeitsverzeichnisses enthält. Im Fall von getcwd() und getwd() ist dies der gleiche  Wert  wie
       Puffer.

       Bei  einem  Fehlschlag  geben  diese Funktionen Null zurück und errno wird so gesetzt, dass es den Fehler
       anzeigt. Der Inhalt des Feldes, auf den Puffer zeigt, ist bei einem Fehler nicht definiert.

FEHLER

       EACCES Lese- oder Suchberechtigung für einen Bestandteil des Dateinamens wurde verweigert.

       EFAULT Puffer zeigt auf eine falsche Adresse.

       EINVAL Das Argument Größe ist Null und Puffer ist kein Null-Zeiger.

       EINVAL getwd(): Puffer ist NULL.

       ENAMETOOLONG
              getwd(): Die Größe des absoluten Pfadnamens mit abschließender Null überschreitet PATH_MAX Byte.

       ENOMEM Speicher aufgebraucht.

       ENOENT Der Link auf das aktuelle Arbeitsverzeichnis wurde gelöst.

       ERANGE Das  Argument  Größe  ist  kleiner  als  die  Länge  des  absoluten   Pfadnamens   des   aktuellen
              Arbeitsverzeichnisses  einschließlich  abschließendem  Null-Byte.  Sie  müssen  ein  größeres Feld
              reservieren und es erneut versuchen.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌────────────────────────┬───────────────────────┬─────────────┐
       │ SchnittstelleAttributWert        │
       ├────────────────────────┼───────────────────────┼─────────────┤
       │ getcwd(), getwd()      │ Multithread-Fähigkeit │ MT-Safe     │
       ├────────────────────────┼───────────────────────┼─────────────┤
       │ get_current_dir_name() │ Multithread-Fähigkeit │ MT-Safe env │
       └────────────────────────┴───────────────────────┴─────────────┘

KONFORM ZU

       getcwd() ist konform zu POSIX.1-2001.  Beachten  Sie  jedoch,  dass  das  Verhalten  von  getcwd()  unter
       POSIX.1-2001 nicht spezifiziert ist, wenn Puffer NULL ist.

       getwd()   ist   in  POSIX.1-2001  vorhanden,  aber  als  VERALTET  markiert.  POSIX.1-2008  entfernt  die
       Spezifikation von getwd(). Benutzen Sie stattdessen getcwd(). POSIX.1-2001  definiert  keine  Fehler  für
       getwd().

       get_current_dir_name() ist eine GNU-Erweiterung.

ANMERKUNGEN

       Unter  Linux  ist  die  Funktion  getcwd()  ein Systemaufruf (seit 2.1.92). Auf älteren Systemen würde es
       /proc/self/cwd abfragen. Falls sowohl der Systemaufruf, als auch das »proc«-Dateisystem fehlen, wird eine
       allgemeine Implementierung aufgerufen. Nur in diesem Fall können  diese  Systemaufrufe  unter  Linux  mit
       EACCES fehlschlagen.

       Diese  Funktionen  werden  oft  benutzt,  um  den  Ort  des aktuellen Arbeitsverzeichnisses zum Zweck der
       späteren Rückkehr zu speichern. Das aktuelle  Verzeichnis  ».«  zu  öffnen  und  fchdir(2)  zur  Rückkehr
       aufzurufen  ist  normalerweise  schneller  und  eine  zuverlässigere  Alternative, wenn ausreichend viele
       Dateideskriptoren zur Verfügung stehen, besonders auf anderen Plattformen als Linux.

SIEHE AUCH

       chdir(2), fchdir(2), open(2), unlink(2), free(3), malloc(3)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  4.04  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 http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche  Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>, 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>.

GNU                                              19. April 2015                                        GETCWD(3)