_getcwd _wgetcwd
Získá aktuální pracovní adresář.
Dů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