Sdílet prostřednictvím


_dupenv_s _wdupenv_s

Získejte hodnotu z aktuálního prostředí.

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.

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

Viz také

Referenční dokumentace

Proces a řízení prostředí

Konstanty životního prostředí

_dupenv_s_dbg _wdupenv_s_dbg

getenv_s _wgetenv_s

_putenv_s _wputenv_s