Sdílet prostřednictvím


_getcwd, _wgetcwd

Získá aktuální pracovní adresář.

Syntaxe

char *_getcwd(
   char *buffer,
   int maxlen
);
wchar_t *_wgetcwd(
   wchar_t *buffer,
   int maxlen
);

Parametry

buffer
Umístění úložiště pro cestu

maxlen
Maximální délka cesty znaků: char pro _getcwd a wchar_t pro _wgetcwd.

Vrácená hodnota

Vrací ukazatel na parametr buffer. NULL Návratová hodnota označuje chybu a errno je nastavena na ENOMEMhodnotu , která označuje, že není dostatek paměti k přidělení maxlen bajtů (pokud NULL je argument uveden jako buffer), nebo pro ERANGE, označující, že cesta je delší než maxlen znaky. Pokud maxlen je menší nebo rovna nule, tato funkce vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru.

Další informace o těchto a dalších návratových kódech naleznete v tématu , , , a_sys_nerr . _sys_errlist_doserrnoerrno

Poznámky

Funkce _getcwd získá úplnou cestu aktuálního pracovního adresáře pro výchozí jednotku a uloží ji na buffer. Celočíselná hodnota maxlen určuje maximální délku cesty. K chybě dojde, pokud délka cesty (včetně ukončujícího znaku null) překročí maxlen. Argumentem buffer může být NULL; vyrovnávací paměť s alespoň velikostí maxlen (více pouze v případě potřeby) je automaticky přidělena pomocí , mallock uložení cesty. Tuto vyrovnávací paměť lze později uvolnit voláním free a předáním návratové _getcwd hodnoty (ukazatel na přidělenou vyrovnávací paměť).

_getcwd vrátí řetězec, který představuje cestu k aktuálnímu pracovnímu adresáři. Pokud je aktuální pracovní adresář kořenovým adresářem, řetězec končí zpětným lomítkem (\). Pokud je aktuální pracovní adresář nastaven na jiný adresář než kořenový, řetězec končí názvem adresáře, nikoli zpětným lomítkem.

_wgetcwd je verze širokého znaku _getcwd; buffer argument a návratová _wgetcwd hodnota jsou řetězce širokých znaků. _wgetcwd a _getcwd chovat se stejně jinak.

Pokud _DEBUG a _CRTDBG_MAP_ALLOC jsou definovány, volání a _wgetcwd _getcwd jsou nahrazena voláními _getcwd_dbg a _wgetcwd_dbg, které vám umožní ladit přidělení paměti. Další informace naleznete v tématu _getcwd_dbg, _wgetcwd_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

Tchar.h rutina _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_tgetcwd _getcwd _getcwd _wgetcwd

Požadavky

Rutina Požadovaný hlavičkový soubor
_getcwd <direct.h>
_wgetcwd <direct.h> nebo <wchar.h>

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

Příklad

// crt_getcwd.c
// Compile with: cl /W4 crt_getcwd.c
// This program places the name of the current directory in the
// buffer array, then displays the name of the current directory
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.

#include <direct.h> // _getcwd
#include <stdlib.h> // free, perror
#include <stdio.h>  // printf
#include <string.h> // strlen

int main( void )
{
   char* buffer;

   // Get the current working directory:
   if ( (buffer = _getcwd( NULL, 0 )) == NULL )
      perror( "_getcwd error" );
   else
   {
      printf( "%s \nLength: %zu\n", buffer, strlen(buffer) );
      free(buffer);
   }
}
C:\Code

Viz také

Ovládací prvek adresář
_chdir, _wchdir
_mkdir, _wmkdir
_rmdir, _wrmdir