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

BEZEICHNUNG

       getcwd, getwd, get_current_dir_name - das aktuelle Verzeichnis abfragen

"UBERSICHT

       #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  abschlieBender  Null
       zuruck,  die  einen  absoluten  Pfadnamen  enthalt,  der  dem aktuellen
       Arbeitsverzeichnis des aufrufenden Prozesses entspricht.  Der  Pfadname
       wird  als das Funktionsergebnis und, falls vorhanden, uber das Argument
       puffer zuruckgegeben.

       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 Lange des  absoluten  Pfadnamens  des  Arbeitsverzeichnisses,
       einschlieBlich  abschlieBender  Null  groesse  Byte uberschreitet, wird
       NULL zuruckgegeben und errno auf ERANGE gesetzt. Eine Anwendung  sollte
       prufen,  ob dieser Fehler auftrat und falls notig einen groBeren 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  Lange groesse, sofern groesse nicht Null ist, wenn die fur
       puffer   notige  GroBereserviert  ist.  Der   Aufrufende   sollte   den
       zuruckgegebenen Puffer mit free(3) freigeben.

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

       getwd()  reserviert  keinen Speicher mit malloc(3). Das Argument puffer
       sollte ein Zeiger auf ein Feld mit einer Mindestlange von PATH_MAX Byte
       sein.   Falls   die   Lange  des  absoluten  Pfadnamens  des  aktuellen
       Arbeitsverzeichnisses  einschlieBlich  des  abschlieBenden   Null-Bytes
       PATH_MAX  Byte  uberschreitet,  wird  NULL  zuruckgegeben und errno auf
       ENAMETOOLONG gesetzt. (Beachten Sie, dass PATH_MAX auf einigen Systemen
       zur  Kompilierzeit  moglicherweise  keine Konstante ist; auBerdem hangt
       ihr Wert vom Dateisystem ab  -  siehe  pathconf(3).)  Aus  Grunden  der
       Portierbarkeit   und   Sicherheit   ist   die   Benutzung  von  getwd()
       missbilligt.

R"UCKGABEWERT

       Bei Erfolg geben diese Funktionen einen Zeiger  auf  eine  Zeichenkette
       zuruck,  die den Pfadnamen des aktuellen Arbeitsverzeichnisses enthalt.
       Im Fall von getcwd() und getwd() ist dies der gleiche Wert wie puffer.

       Bei einem Fehlschlag geben diese Funktionen Null zuruck 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   fur   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  GroBe der absoluten Pfadnamens mit abschlieBender
              Null uberschreitet PATH_MAX Byte.

       ENOENT Der Link auf das aktuelle Arbeitsverzeichnis wurde gelost.

       ERANGE Das Argument groesse ist kleiner als  die  Lange  des  absoluten
              Pfadnamens  des  aktuellen  Arbeitsverzeichnisses einschlieBlich
              abschlieBendem  Null-Byte.  Sie   mussen   ein   groBeres   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 fur getwd().

       get_current_dir_name() ist eine GNU-Erweiterung.

ANMERKUNGEN

       Unter  Linux  ist die Funktion getcwd() ein Systemaufruf (seit 2.1.92).
       Auf alteren Systemen wurde es /proc/self/cwd abfragen. Falls sowohl der
       Systemaufruf,  als  auch  das  >>proc<<-Dateisystem  fehlen,  wird eine
       allgemeine Implementierung aufgerufen. Nur in diesem Fall konnen  diese
       Systemaufrufe unter Linux mit EACCES fehlschlagen.

       Diese   Funktionen  werden  oft  benutzt,  um  den  Ort  des  aktuellen
       Arbeitsverzeichnisses zum Zweck der spateren Ruckkehr zu speichern. Das
       aktuelle  Verzeichnis  >>.<<  zu  offnen  und  fchdir(2)  zur  Ruckkehr
       aufzurufen  ist  normalerweise  schneller   und   eine   zuverlassigere
       Alternative,  wenn  ausreichend  viele  Dateideskriptoren zur Verfugung
       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   Veroffentlichung   3.32   des   Projekts
       Linux-man-pages.  Eine Beschreibung des Projekts und Informationen, wie
       Fehler    gemeldet     werden     konnen,     finden     sich     unter
       http://www.kernel.org/doc/man-pages/.

"UBERSETZUNG

       Die  deutsche Ubersetzung dieser Handbuchseite wurde von Martin Schulze
       <joey@infodrom.org> und Chris Leick <c.leick@vollbio.de> erstellt.

       Diese Ubersetzung ist Freie Dokumentation; lesen Sie  die  GNU  General
       Public   License   Version   3  oder  neuer  bezuglich  der  Copyright-
       Bedingungen. Es wird KEINE HAFTUNG ubernommen.

       Wenn  Sie  Fehler  in  der  Ubersetzung  dieser  Handbuchseite  finden,
       schicken     Sie     bitte     eine     E-Mail     an     <debian-l10n-
       german@lists.debian.org>.