Share via


_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_errlistund _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 GetFullPathNameabhä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 GetFullPathNameaufruft.

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_nolockverwalten.

Wann _DEBUG und _CRTDBG_MAP_ALLOC sind definiert, werden Aufrufe an _getdcwd und _wgetdcwd_wgetdcwd_dbgwerden 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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinzuordnungen

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