_getdcwd _wgetdcwd
Získá aktuální pracovní adresář úplnou cestu k určené jednotce.
![]() |
---|
Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v systému Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW. |
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
Parametry
drive
Kladné celé číslo, které určuje jednotku (0 = výchozí jednotka, 1 = A, 2 = B a tak dále).Pokud zadaná jednotka není k dispozici, nebo druh jednotky (například vyměnitelné, pevná, CD-ROM, paměti RAM disk nebo síťová jednotka) nelze určit, obslužné rutiny neplatný parametr, který je popsán v Ověření parametrů, je vyvolána.
buffer
Umístění úložiště pro cestu, nebo NULL.Pokud NULL je určena tato funkce přiděluje vyrovnávací paměti o nejméně maxlen velikost pomocí malloca vrátí hodnotu, která _getdcwd je ukazatel do přidělené vyrovnávací paměti.Vyrovnávací paměti mohou být uvolněna voláním free a předáním ukazatel.
maxlen
Nenulová kladné celé číslo určující maximální délka cesty, znaky: char pro _getdcwd a wchar_t pro _wgetdcwd.Pokud maxlen není větší než nula, obslužné rutiny neplatný parametr, který je popsán v Ověření parametrů, je vyvolána.
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 určena jako NULL a přidělit dostatek paměti maxlen znaky, dojde k chybě a errno je nastavena na ENOMEM.Délka cesty, která zahrnuje ukončující znak null, přesahuje-li maxlen, dojde k chybě a errno je nastavena na ERANGE.Další informace o těchto kódech chyb naleznete v tématu Kód chyby, _doserrno, _sys_errlist a _sys_nerr.
Poznámky
_getdcwd Funkce získá úplnou cestu k aktuálnímu pracovnímu adresáři na zadanou jednotku a uloží jej na buffer.Je-li aktuální pracovní adresář je nastavena na kořenový adresář, končí řetězcem zpětného lomítka (\).Je-li aktuální pracovní adresář je nastavena na adresář, než je kořenový adresář, končí řetězec s názvem adresáře, nikoli s zpětné lomítko ().
_wgetdcwdje verzí širokého znaku _getdcwda jeho buffer parametrů a vrácené hodnoty jsou řetězci širokého znaku.V opačném případě se _wgetdcwd a _getdcwd chovat identicky.
Tato funkce je bezpečným, přestože je závislý na GetFullPathName, která je sama o sobě není bezpečným.Však porušují bezpečnostní vlákno je-li aplikace s více podprocesy volá i tuto funkci a GetFullPathName.Další informace naleznete v tématu Knihovny MSDN a vyhledejte GetFullPathName.
Verze této funkce, která má _nolock se přípona chová stejně tuto funkci s tím rozdílem, že není bezpečným a není chráněn před rušení jiných podprocesů.Další informace naleznete v tématu _getdcwd_nolock _wgetdcwd_nolock.
Při _DEBUG a _CRTDBG_MAP_ALLOC jsou definovány, zavolá na _getdcwd a _wgetdcwd se nahrazují volání _getdcwd_dbg a _wgetdcwd_dbg tak, aby bylo možné ladit přidělení paměti.Další informace naleznete v tématu _getdcwd_dbg _wgetdcwd_dbg.
Mapování rutiny obecného textu
Byla zahájena rutina Tchar.h |
_UNICODE a _MBCS není definováno |
_MBCS, definice |
_UNICODE definována |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
Požadavky
Byla zahájena rutina |
Požadované záhlaví |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> nebo <wchar.h> |
Další informace o kompatibilitě v tématu Kompatibilita.
Příklad
Viz příklad v _getdrive.
Ekvivalent v rozhraní .NET Framework
System::Environment::CurrentDirectory