_dupenv_s, _wdupenv_s
Získá hodnotu z aktuální prostředí.
Dů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