_dupenv_s _wdupenv_s
Získejte hodnotu z aktuálního prostředí.
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. |
errno_t _dupenv_s(
char **buffer,
size_t *numberOfElements,
const char *varname
);
errno_t _wdupenv_s(
wchar_t **buffer,
size_t *numberOfElements,
const wchar_t *varname
);
Parametry
buffer
Chcete-li vyrovnávací paměť pro ukládání hodnot proměnné.numberOfElements
Size of buffer.varname
Název proměnné prostředí.
Vrácená hodnota
Nula v případě úspěchu, kód chyby při selhání.
Tyto funkce ověření jejich parametrů; Pokud buffer nebo varname je NULL, je vyvolána obslužná rutina neplatný parametr, jak je popsáno v Ověření parametrů.Je-li pokračovat, je povoleno zpracování, funkce set errno na EINVAL a vrátit se EINVAL.
Je-li tyto funkce nelze přidělit dostatek paměti, nastavily buffer na NULL a numberOfElements 0 a návrat ENOMEM.
Poznámky
_dupenv_s Funkce prohledá seznam proměnných prostředí pro varname.Pokud je proměnná, _dupenv_s přiděluje vyrovnávací paměti a zkopíruje hodnotu proměnné do vyrovnávací paměti.Adresu a délku do vyrovnávací paměti, které jsou vráceny v buffer a numberOfElements.Pomocí přidělení vyrovnávací paměti, _dupenv_s výhodnější alternativou k getenv_s _wgetenv_s.
[!POZNÁMKA]
Je odpovědností volajícího program uvolnění paměti pomocí volání free.
Je-li proměnná nebyla nalezena, pak buffer je nastavena na NULL, numberOfElements je nastavena na hodnotu 0, a vrácená hodnota je 0, protože tato situace není považováno za chybovou podmínku.
Pokud vás zajímají není velikost vyrovnávací paměti můžete předat NULL pro numberOfElements.
_dupenv_sje malá a velká písmena v operačním systému Windows._dupenv_sje použita kopie prostředí odkazuje globální proměnnou _environ přístup k prostředí.Viz poznámky v getenv_s _wgetenv_s pro diskusi o _environ.
Hodnota v buffer je hodnota proměnné prostředí; provádění úprav nemá žádný vliv na životní prostředí.Použití _putenv_s _wputenv_s funkci, kterou chcete změnit hodnotu proměnné prostředí.
_wdupenv_sje verzí širokého znaku _dupenv_s; argumenty _wdupenv_s jsou řetězci širokého znaku._wenviron Globální proměnná je verzí širokého znaku _environ.Viz poznámky v getenv_s _wgetenv_s pro další informace o _wenviron.
Mapování rutiny obecného textu
TCHAR.Byla zahájena rutina h |
_UNICODE & _MBCS není definováno |
_MBCS, definice |
_UNICODE definována |
---|---|---|---|
_tdupenv_s |
_dupenv_s |
_dupenv_s |
_wdupenv_s |
Požadavky
Byla zahájena rutina |
Požadované záhlaví |
---|---|
_dupenv_s |
<stdlib.h> |
_wdupenv_s |
<stdlib.h> nebo <wchar.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
// crt_dupenv_s.c
#include <stdlib.h>
int main( void )
{
char *pValue;
size_t len;
errno_t err = _dupenv_s( &pValue, &len, "pathext" );
if ( err ) return -1;
printf( "pathext = %s\n", pValue );
free( pValue );
err = _dupenv_s( &pValue, &len, "nonexistentvariable" );
if ( err ) return -1;
printf( "nonexistentvariable = %s\n", pValue );
free( pValue ); // It's OK to call free with NULL
}
Vzorový výstup
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
Ekvivalent v rozhraní .NET Framework
System::Environment::GetEnvironmentVariable