Provided by:
manpages-de-dev_0.10-1_all 
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>.