_getdcwd
, _wgetdcwd
Ruft den vollständigen Pfad des aktuellen Arbeitsverzeichnisses auf dem angegebenen Laufwerk ab.
Syntax
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
Parameter
drive
Eine nicht negative ganze Zahl, die das Laufwerk angibt (0 = Standardlaufwerk, 1 = A, 2 = B usw.).
Wenn das angegebene Laufwerk nicht verfügbar ist, wird der ungültige Parameterhandler aufgerufen. Es wird auch aufgerufen, wenn die Art des Laufwerks (z. B. Wechseldatenträger, Feste, CD-ROM, RAM-Datenträger oder Netzlaufwerk) nicht bestimmt werden kann. Weitere Informationen finden Sie unter Parameterüberprüfung.
buffer
Speicherort für den Pfad oder NULL
.
Wenn NULL
angegeben, weist diese Funktion einen Puffer mit mindestens maxlen
einer Größe zu malloc
, und der Rückgabewert von _getdcwd
ist ein Zeiger auf den zugewiesenen Puffer. Der Puffer kann freigegeben werden, indem free
aufgerufen und der Zeiger übergeben wird.
maxlen
Eine positive ganze Zahl ungleich Null, die die maximale Länge des Pfads angibt, in Zeichen: char
für _getdcwd
und wchar_t
für _wgetdcwd
.
Wenn maxlen
der Wert kleiner oder gleich Null ist, wird der Handler für ungültige Parameter aufgerufen. Weitere Informationen finden Sie unter Parameterüberprüfung.
Rückgabewert
Zeiger auf eine Zeichenfolge, die den vollständigen Pfad des aktuellen Arbeitsverzeichnisses auf dem angegebenen Laufwerk darstellt, oder NULL
, wodurch ein Fehler angegeben wird.
Wenn buffer
angegeben wird, als NULL
und nicht genügend Arbeitsspeicher zum Zuordnen maxlen
von Zeichen vorhanden ist, tritt ein Fehler auf und errno
wird auf ENOMEM
. Wenn die Länge des Pfads einschließlich des endenden NULL-Zeichens maxlen
überschreitet, tritt ein Fehler auf und errno
wird auf ERANGE
. Weitere Informationen zu diesen Fehlercodes finden Sie unter , , _doserrno
, _sys_errlist
und _sys_nerr
.errno
Hinweise
Die _getdcwd
-Funktion ruft den vollständigen Pfad des aktuellen Arbeitsverzeichnisses auf dem angegebenen Laufwerk ab und speichert ihn unter buffer
. Wenn das aktuelle Arbeitsverzeichnis auf den Stamm festgelegt ist, endet die Zeichenfolge mit einem umgekehrten Schrägstrich (\). Wenn das aktuelle Arbeitsverzeichnis nicht auf das Stammverzeichnis festgelegt ist, endet die Zeichenfolge mit dem Namen des Verzeichnisses und nicht mit einem umgekehrten Schrägstrich.
_wgetdcwd
ist eine Breitzeichenversion von _getdcwd
, und der buffer
-Parameter und der Rückgabewert sind Zeichenfolgen mit Breitzeichen. Andernfalls verhalten sich _wgetdcwd
und _getdcwd
identisch.
Diese Funktion ist threadsicher, obwohl sie davon GetFullPathName
abhängt, dass sie selbst nicht threadsicher ist. Sie können jedoch die Threadsicherheit verletzen, wenn Ihre Multithread-Anwendung sowohl diese Funktion als auch diese Funktion GetFullPathName
aufruft.
Die Version dieser Funktion mit dem _nolock
Suffix verhält sich identisch mit dieser Funktion, mit der Ausnahme, dass sie nicht threadsicher ist und nicht vor Störungen durch andere Threads geschützt ist. Weitere Informationen finden Sie unter _getdcwd_nolock
, _wgetdcwd_nolock
verwalten.
Wann _DEBUG
und _CRTDBG_MAP_ALLOC
sind definiert, werden Aufrufe an _getdcwd
und _wgetdcwd
_wgetdcwd_dbg
werden durch Aufrufe _getdcwd_dbg
ersetzt, damit Sie Speicherzuweisungen debuggen können. Weitere Informationen finden Sie unter_getdcwd_dbg
_wgetdcwd_dbg
.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
Tchar.h-Routine | _UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
Anforderungen
Routine | Erforderlicher Header |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Siehe das Beispiel in _getdrive
.
Siehe auch
Verzeichnissteuerelement
_chdir
, _wchdir
_getcwd
, _wgetcwd
_getdrive
_mkdir
, _wmkdir
_rmdir
, _wrmdir