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