_getdcwd
, _wgetdcwd
Získá úplnou cestu aktuálního pracovního adresáře na zadané jednotce.
Syntaxe
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
Parametry
drive
Nezáporné celé číslo, které určuje jednotku (0 = výchozí jednotka, 1 = A, 2 = B atd.).
Pokud zadaná jednotka není dostupná, vyvolá se neplatná obslužná rutina parametru. Vyvolá se také v případě, že nelze určit druh jednotky (například vyměnitelné, pevné, CD-ROM, disk RAM nebo síťovou jednotku). Další informace najdete v tématu Ověření parametru.
buffer
Umístění úložiště pro cestu nebo NULL
.
Pokud NULL
je zadána, tato funkce přidělí vyrovnávací paměť s alespoň maxlen
velikostí pomocí malloc
a návratová _getdcwd
hodnota je ukazatel na přidělenou vyrovnávací paměť. Vyrovnávací paměť lze uvolnit voláním free
a předáním ukazatele.
maxlen
Nenulové kladné celé číslo, které určuje maximální délku cesty, v znaky: char
pro _getdcwd
a wchar_t
pro _wgetdcwd
.
Pokud maxlen
je menší nebo rovna nule, je vyvolána obslužná rutina neplatného parametru. Další informace najdete v tématu Ověření parametru.
Vrácená hodnota
Ukazatel na řetězec, který představuje úplnou cestu k aktuálnímu pracovnímu adresáři na zadané jednotce nebo NULL
, který označuje chybu.
Pokud buffer
je zadána jako NULL
a není k dispozici dostatek paměti pro přidělení maxlen
znaků, dojde k chybě a errno
je nastavena na ENOMEM
. Pokud délka cesty včetně ukončujícího znaku null překročí maxlen
, dojde k chybě a errno
je nastavena na ERANGE
. Další informace o těchto kódech chyb naleznete v tématu errno
, _doserrno
, _sys_errlist
a _sys_nerr
.
Poznámky
Funkce _getdcwd
získá úplnou cestu aktuálního pracovního adresáře na zadané jednotce a uloží ji na buffer
. Pokud je aktuální pracovní adresář nastavený na kořen, řetězec končí zpětným lomítkem (\). Pokud je aktuální pracovní adresář nastavený na jiný adresář než kořenový adresář, řetězec končí názvem adresáře, nikoli zpětným lomítkem.
_wgetdcwd
je verze širokého znaku _getdcwd
a jeho buffer
parametr a návratová hodnota jsou řetězce širokých znaků. _wgetdcwd
V opačném případě se _getdcwd
chovejte stejně.
Tato funkce je bezpečná pro přístup z více vláken, i když závisí na GetFullPathName
tom, která není bezpečná pro přístup z více vláken. Pokud však vaše vícevláknová aplikace volá tuto funkci i GetFullPathName
.
Verze této funkce, která má příponu _nolock
, se chová stejně jako tato funkce s tím rozdílem, že není bezpečná pro přístup z více vláken a není chráněná před rušením jinými vlákny. Další informace naleznete v tématu _getdcwd_nolock
, _wgetdcwd_nolock
.
Když _DEBUG
a _CRTDBG_MAP_ALLOC
jsou definovány, volání a _wgetdcwd
_getdcwd
jsou nahrazena voláními a _getdcwd_dbg
_wgetdcwd_dbg
, aby bylo možné ladit přidělení paměti. Další informace naleznete v tématu_getdcwd_dbg
_wgetdcwd_dbg
.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Mapování rutin obecného textu
Rutina Tchar.h | _UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
Podívejte se na příklad v souboru _getdrive
.
Viz také
Ovládací prvek adresář
_chdir
, _wchdir
_getcwd
, _wgetcwd
_getdrive
_mkdir
, _wmkdir
_rmdir
, _wrmdir