Sdílet prostřednictvím


_getcwd _wgetcwd

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

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

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 *_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 v znaky: char pro _getcwd a wchar_t pro _wgetcwd.

Vrácená hodnota

Vrací ukazatel na buffer.A NULL návratová hodnota určuje chybu, a errno je buď nastaven na ENOMEM, označující, že je dostatek paměti k přidělení maxlen bajtů (při NULL argument je uveden jako buffer), nebo na ERANGE, označující, že cesta je delší než maxlen znaků.Pokud maxlen je menší nebo rovna nule, tuto funkci vyvolá obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametrů.

Další informace o těchto i jiných návratové kódy, viz _doserrno, kód chyby, _sys_errlist a _sys_nerr.

Poznámky

_getcwd Funkce získá úplnou cestu aktuálního pracovního adresáře pro výchozí jednotka a uloží jej na buffer.Argument celého čísla maxlen určuje maximální délku cesty.Dojde k chybě, pokud překročí délku cesty (včetně ukončující znak null) maxlen*.*buffer Argument může být NULL; vyrovnávací paměť alespoň velikost maxlen (více pouze v případě, že je nezbytné) je automaticky přidělen, pomocí malloc, k uložení cestu.Tato vyrovnávací paměť můžete později uvolněna voláním free a předejte jí _getcwd vrácená hodnota (ukazatel do přidělené vyrovnávací paměti).

_getcwdVrátí řetězec představující cestu k aktuálnímu pracovnímu adresáři.Je-li aktuální pracovní adresář je kořenový adresář, řetězec končí zpětným lomítkem ( \ ).Je-li aktuální pracovní adresář je adresář, než je kořenový adresář, končí řetězec s názvem adresáře, nikoli s zpětné lomítko ().

_wgetcwdje verzí širokého znaku _getcwd; buffer argument a vrací hodnotu _wgetcwd jsou řetězci širokého znaku._wgetcwda _getcwd jinak chovat identicky.

Při _DEBUG a _CRTDBG_MAP_ALLOC jsou definovány, zavolá na _getcwd a _wgetcwd se nahrazují volání _getcwd_dbg a _wgetcwd_dbg Chcete-li povolit ladění přidělení paměti.Další informace naleznete v tématu _getcwd_dbg, _wgetcwd_dbg.

Mapování rutiny obecného textu

Byla zahájena rutina Tchar.h

_UNICODE a _MBCS není definováno

_MBCS, definice

_UNICODE definována

_tgetcwd

_getcwd

_getcwd

_wgetcwd

Požadavky

Byla zahájena rutina

Požadované záhlaví

_getcwd

<direct.h>

_wgetcwd

<direct.h> nebo <wchar.h>

Další informace o kompatibilitě v tématu Compatibility v úvodu.

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ář

_chdir _wchdir

_mkdir _wmkdir

_rmdir _wrmdir