Sdílet prostřednictvím


_dupenv_s, _wdupenv_s

Získá hodnotu z aktuální prostředí.

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

Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v běhovém prostředí systému Windows.Další informace naleznete v tématu CRT funkce nepodporované 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
    Vyrovnávací paměť k uložení hodnoty proměnné.

  • numberOfElements
    Velikost buffer.

  • varname
    Název proměnné prostředí.

Vrácená hodnota

Nulová hodnota pro úspěch, chybový kód při selhání.

Tyto funkce ověření jejich parametry. Pokud buffer nebo varname je NULL, obslužné rutiny neplatný parametr je volána, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění chcete-li pokračovat, nastavte funkce errno k EINVAL a vrátit EINVAL.

Je-li tyto funkce nelze přidělit dostatek paměti, nastavují buffer k NULL a numberOfElements na 0 a přejít zpět ENOMEM.

Poznámky

_dupenv_s Funkce hledá seznam proměnné prostředí pro varname.Pokud je nalezena proměnné, _dupenv_s přidělení vyrovnávací paměti a zkopíruje hodnota proměnné do vyrovnávací paměti.Adresa do vyrovnávací paměti a délka jsou vráceny v buffer a numberOfElements.Podle přidělení vyrovnávací paměti, _dupenv_s poskytuje více pohodlná alternativa k getenv_s, _wgetenv_s.

[!POZNÁMKA]

Je zodpovědností volací program k uvolnění paměti voláním free.

Pokud není nalezena proměnnou, pak buffer je nastavena na NULL, numberOfElements je nastavena na hodnotu 0, a vrácená hodnota je 0, protože tato situace nepovažuje došlo k chybovému stavu.

Pokud si nejste zájem velikost vyrovnávací paměti můžete předat NULL pro numberOfElements.

_dupenv_snení malá a velká písmena v operačním systému Windows._dupenv_spoužije kopii odkazuje globální proměnnou prostředí _environ pro přístup k prostředí.Podívejte se na téma příspěvky v getenv_s, _wgetenv_s informace o _environ.

Hodnota v buffer je kopie hodnoty proměnné prostředí; ji nemá žádný vliv na prostředí.Použití _putenv_s, _wputenv_s funkce lze upravit hodnotu proměnné prostředí.

_wdupenv_sje verze širokého znaku _dupenv_s; argumenty _wdupenv_s jsou řetězce širokého znaku._wenviron Globální proměnná je verze širokého znaku _environ.Podívejte se na téma příspěvky v getenv_s, _wgetenv_s pro další informace o _wenviron.

Mapování rutin obecného textu

Rutina TCHAR.H

_UNICODE & _MBCS není definována.

_MBCS definováno

_UNICODE definováno

_tdupenv_s

_dupenv_s

_dupenv_s

_wdupenv_s

Požadavky

Rutina

Požadovaný hlavičkový soubor

_dupenv_s

< stdlib.h >

_wdupenv_s

< stdlib.h > nebo < wchar.h >

Další informace o kompatibilitě, naleznete v části kompatibility.

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

Řízení procesů a prostředí

Konstanty prostředí

_dupenv_s_dbg, _wdupenv_s_dbg

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s