Sdílet prostřednictvím


_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í malloca 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_errlista _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 _getdcwda 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 GetFullPathNametom, 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 Definovány _UNICODE Definovány
_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