getcwd, _wgetcwd
Nach oben zu dir.h - Index
Header-Datei
dir.h
Kategorie
Verzeichnisbearbeitungsroutinen
Prototyp
char *getcwd(char *buf, int buflen);
wchar_t *_wgetcwd(wchar_t *buf, int buflen);
Beschreibung
Ermittelt das aktuelle Arbeitsverzeichnis.
getcwd ermittelt den vollständigen Pfadnamen (einschließlich Laufwerk) des aktuellen Arbeitsverzeichnisses bis zu einer Länge von buflen Bytes und speichert ihn in buf. Wenn der vollständige Pfadname (einschließlich Nullterminator) länger als buflen ist, tritt ein Fehler auf.
Ist buf gleich NULL, wird mit malloc automatisch ein Puffer der Länge buflen Bytes reserviert. Sie können den reservierten Puffer später freigeben, indem Sie den Rückgabewert von getcwd der Funktion free übergeben.
Rückgabewert
- getcwd gibt die folgenden Werte zurück:
- Wenn buf zu Beginn der Eingabe nicht NULL ist, gibt getcwd bei erfolgreicher Ausführung buf zurück und im Fehlerfall NULL.
- Ist buf zu Beginn der Eingabe NULL, gibt getcwd einen Zeiger auf den zugewiesenen Puffer zurück.
Bei einem Fehler wird die globale Variable errno auf einen der folgenden Werte gesetzt:
ENODEV |
No such device (Gerät existiert nicht) |
ENOMEM |
Not enough memory to allocate a buffer (buf is NULL) (Nicht genügend Speicher zur Zuweisung eines Puffers vorhanden [buf ist NULL]) |
ERANGE |
Directory name longer than buflen (buf is not NULL) (Der Verzeichnisname ist länger als buflen [buf ist nicht NULL]) |
Beispiel
#include <stdio.h>
#include <dir.h>
int main(void)
{
char buffer[MAXPATH];
getcwd(buffer, MAXPATH);
printf("The current directory is: %s\n", buffer);
return 0;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
getcwd |
+ |
+ |
||
_wgetcwd |
Nur NT |