Sdílet prostřednictvím


_getdcwd, _wgetdcwd

Získá celou cestu aktuálního pracovního adresáře na zadané jednotce.

Důležitá poznámkaDůležité

Toto API nelze použít v aplikacích, které jsou spuštěny v modulu 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
    Nezáporné 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, disk RAM nebo síťová jednotka) nelze určit, je vyvolána obslužná rutina neplatného parametru, která je popsána v Ověření parametru.

  • buffer
    Umístění úložiště pro cestu nebo NULL.

    Pokud je zadána NULL, tato funkce přidělí vyrovnávací paměť o velikosti nejméně maxlen pomocí malloc a návratová hodnota _getdcwd je ukazatel do přidělené vyrovnávací paměti.Vyrovnávací paměť lze uvolnit voláním free a jeho předáním ukazateli.

  • maxlen
    Nenulové kladné celé číslo určující maximální délku cesty ve znacích: char pro _getdcwd a wchar_t pro _wgetdcwd.

    Pokud maxlen není větší než nula, je vyvolána obslužná rutina neplatného parametru, jak je popsáno v Ověření parametru.

Vrácená hodnota

Ukazatel na řetězec, který představuje úplnou cestu aktuálního pracovního adresář na zadané jednotce, nebo NULL, což znamená chybu.

Pokud je buffer zadán jako NULL a není dostatek paměti k přidělení znaků maxlen, dojde k chybě a errno je nastavena na ENOMEM.Pokud délka cesty, která zahrnuje ukončující znak null, překročí maxlen, dojde k chybě a errno je nastavena na ERANGE.Další informace o těchto chybových kódech naleznete v tématu errno, _doserrno, _sys_errlist, and _sys_nerr.

Poznámky

Funkce _getdcwd získává celou cestu aktuálního pracovního adresáře na zadané jednotce a ukládá ji do buffer.Pokud aktuální pracovní adresář není nastaven na kořen, řetězec skončí zpětným lomítkem (\).Pokud je aktuální pracovní adresář nastaven na jiný adresář než kořenový, řetězec skončí názvem adresáře, nikoli zpětným lomítkem.

_wgetdcwd je širokoznaká verze _getdcwd a její parametr buffer a návratová hodnota jsou širokoznaké řetězce.Jinak _wgetdcwd a _getdcwd se chovají stejně.

Tato funkce je bezpečná pro vlákno, přestože je závislá na funkci GetFullPathName, která sama o sobě není bezpečná pro vlákno.Můžete však porušit bezpečnost vlákna, pokud aplikace s více vlákny volá tuto funkci i GetFullPathName.Další informace naleznete v knihovně MSDN po vyhledání 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 vlákna a není chráněna před rušením od jiných vláken.Další informace naleznete v tématu _getdcwd_nolock, _wgetdcwd_nolock.

Když jsou definovány _DEBUG a _CRTDBG_MAP_ALLOC, volání _getdcwd a _wgetdcwd jsou nahrazena voláními _getdcwd_dbg a _wgetdcwd_dbg, takže můžete ladit přidělování paměti.Další informace naleznete v tématu_getdcwd_dbg, _wgetdcwd_dbg.

Rutinní mapování obecného textu

Rutina Tchar.h

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_tgetdcwd

_getdcwd

_getdcwd

_wgetdcwd

Požadavky

Rutina

Požadované záhlaví

_getdcwd

<direct.h>

_wgetdcwd

<direct.h> nebo <wchar.h>

Další informace o kompatibilitě naleznete v tématu Kompatibilita.

Příklad

Viz příklad. v části _getdrive.

Ekvivalent v rozhraní .NET Framework

System::Environment::CurrentDirectory

Viz také

Referenční dokumentace

Ovládací prvek adresáře

_chdir, _wchdir

_getcwd, _wgetcwd

_getdrive

_mkdir, _wmkdir

_rmdir, _wrmdir