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