Sdílet prostřednictvím


_getcwd, _wgetcwd

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

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 *_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 ve znacích: char pro _getcwd a wchar_t pro _wgetcwd.

Vrácená hodnota

Vrací ukazatel na parametr buffer.Vrácená hodnota NULL označuje chybu a errno je nastaven buď na hodnotu ENOMEM, označující, že je nedostatek paměti k přidělení maxlen bajtů (pokud je předána hodnota NULL parametru buffer) nebo na hodnotu ERANGE, označující, že cesta je delší než maxlen znaků.Pokud je parametr maxlen menší nebo roven nule, tato funkce vyvolá obslužnou rutinu neplatného parametru, jak je popsáno v tématu Ověření parametru.

Další informace o těchto a dalších návratových kódech naleznete v části _doserrno, errno, _sys_errlist, and _sys_nerr.

Poznámky

Funkce _getcwd získá celou cestu aktuálního pracovního adresáře na výchozí jednotce a uloží ji do parametru buffer.Celočíselný argument maxlen určuje maximální délku cesty.Pokud délka cesty (včetně ukončovacího znaku null) překročí hodnotu parametru maxlen dojde k chybě. Argument buffer může být NULL. Vyrovnávací paměť o velikosti alespoň maxlen (více pouze v případě potřeby) je automaticky přidělena pomocí klíčového slova malloc pro uložení této cesty.Tato vyrovnávací paměť může být později uvolněna voláním funkce free a předáním hodnoty vrácené funkcí _getcwd (ukazatel do přidělené vyrovnávací paměti).

Funkce _getcwd vrátí řetězec představující cestu k aktuálnímu pracovnímu adresáři.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ý, řetězec končí názvem adresáře, nikoli zpětným lomítkem.

_wgetcwd je široko znaková verze _getcwd; argument buffer a návratová hodnota _wgetcwd jsou široko znakové řetězce._wgetcwd a _getcwd se jinak chovají stejně.

Když jsou definovány konstanty _DEBUG a _CRTDBG_MAP_ALLOC, volání funkcí _getcwd a _wgetcwd jsou nahrazena voláními funkcí _getcwd_dbg a _wgetcwd_dbg, což umožňuje ladit přidělování paměti.Další informace naleznete v tématu Funkce _getcwd_dbg a _wgetcwd_dbg.

Rutinní mapování obecného textu

Rutina Tchar.h

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_tgetcwd

_getcwd

_getcwd

_wgetcwd

Požadavky

Rutina

Požadované záhlaví

_getcwd

<direct.h>

_wgetcwd

<direct.h> nebo <wchar.h>

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

Příklad

// 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>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char* buffer;

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

Ekvivalent v rozhraní .NET Framework

System::Environment::CurrentDirectory

Viz také

Referenční dokumentace

Ovládací prvek adresáře

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir