Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       getcwd, getwd, get_current_dir_name - das aktuelle Verzeichnis abfragen

ÜBERSICHT

       #include <unistd.h>

       char *getcwd(char *puffer, size_t groesse);

       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.

       Die  Funktion getcwd() kopiert den absoluten Pfadnamen des aktuellen Arbeitsverzeichnisses
       in das Feld, auf das puffer zeigt und das groesse Byte lang ist.

       Falls  die  Länge  des  absoluten  Pfadnamens  des  Arbeitsverzeichnisses,  einschließlich
       abschließender  Null  groesse  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-Standards reserviert getcwd() von Linux (libc4, libc5,
       glibc) den Puffer dynamisch durch Verwendung von  malloc(3),  wenn  puffer  NULL  ist.  In
       diesem  Fall  hat der reservierte Puffer die Länge groesse, sofern groesse nicht Null ist,
       wenn die für puffer  nötige Größereserviert 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 groesse ist Null und puffer ist kein Null-Zeiger.

       EINVAL getwd(): puffer ist NULL.

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

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

       ERANGE Das Argument groesse 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.

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  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 Martin Schulze <joey@infodrom.org>
       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>.