table of contents
GETCWD(3) | Linux-Programmierhandbuch | GETCWD(3) |
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
- 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.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.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.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.42 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.20. September 2010 | GNU |