Sdílet prostřednictvím


_putenv_s, , _wputenv_s_tputenv_s

Vytvoří, upraví nebo odebere proměnné prostředí. Tyto funkce jsou verze _putenv, _wputenv které mají vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.

Důležité

Toto rozhraní API nelze použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.

Viz _tputenv_smapování obecných textových funkcí.

Syntaxe

errno_t _putenv_s(
   const char *varname,
   const char *value_string
);
errno_t _wputenv_s(
   const wchar_t *varname,
   const wchar_t *value_string
);

Parametry

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

value_string
Hodnota, na kterou chcete nastavit proměnnou prostředí.

Vrácená hodnota

Vrátí hodnotu 0, pokud je úspěšná, nebo kód chyby.

Chybové podmínky

varname value_string Vrácená hodnota
NULL jakékoliv EINVAL
jakékoliv NULL EINVAL

Pokud dojde k některé z chybových podmínek, tyto funkce vyvolat neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud provádění může pokračovat, tyto funkce se vrátí EINVAL a nastaví errno na EINVAL.

Poznámky

Funkce _putenv_s přidá nové proměnné prostředí nebo upraví hodnoty existujících proměnných prostředí. Proměnné prostředí definují prostředí, ve kterém se proces spustí (například výchozí cesta hledání knihoven, které se mají propojit s programem). _wputenv_sje verze širokého znaku _putenv_senvstring ; argument je _wputenv_s řetězec širokého znaku.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování obecných textových funkcí

Funkce ve sloupci tchar.h se mapuje na funkci v ostatních sloupcích v závislosti na znakové sadě, která je definována v době kompilace.

Funkce tchar.h _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_tputenv_s _putenv_s _putenv_s _wputenv_s

varname je název proměnné prostředí, kterou chcete přidat nebo upravit, a value_string je hodnota proměnné. Pokud varname je již součástí prostředí, její hodnota se nahradí value_string; jinak se nová varname proměnná a její value_string hodnota přidá do prostředí. Proměnnou můžete z prostředí odebrat zadáním prázdného řetězce (tj "". ) pro value_string.

_putenv_s a _wputenv_s ovlivnit pouze prostředí, které je místní pro aktuální proces. Nemůžete je použít k úpravě prostředí na úrovni příkazů. Tyto funkce pracují pouze s datovými strukturami, které jsou přístupné pro knihovnu za běhu, a ne v "segmentu" prostředí, které operační systém vytvoří pro proces. Když se aktuální proces ukončí, prostředí se vrátí na úroveň volajícího procesu, což je ve většině případů úroveň operačního systému. Upravené prostředí však může být předáno všem novým procesům_spawn_exec, které jsou vytvořeny , nebo systema tyto nové procesy získávají všechny nové položky, které jsou přidány _putenv_s a _wputenv_s.

Neměňte přímo položku prostředí; místo toho ho použijte _putenv_s nebo _wputenv_s změňte. Zejména přímé uvolnění prvků globálního _environ[] pole může způsobit vyřešení neplatné paměti.

getenv a _putenv_s použijte globální proměnnou _environ pro přístup k tabulce _wgetenv prostředí a _wputenv_s použijte _wenviron. _putenv_s a _wputenv_s může změnit hodnotu _environ a _wenvirontím zneplatnit envp argument main a _wenvp argument na wmain. Proto je bezpečnější používat _environ nebo _wenviron přistupovat k informacím o prostředí. Další informace o vztahu _putenv_s a globálních proměnných naleznete v tématu_environ , _wenviron._wputenv_s

Poznámka:

Funkce _putenv_s a _getenv_s jejich rodiny nejsou bezpečné pro přístup z více vláken. _getenv_s při úpravě řetězce by mohl vrátit ukazatel _putenv_s řetězce a způsobit tak náhodná selhání. Ujistěte se, že jsou volání těchto funkcí synchronizovaná.

Požadavky

Rutina Požadovaný hlavičkový soubor
_putenv_s <stdlib.h>
_wputenv_s <stdlib.h> nebo <wchar.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

Ukázku, která ukazuje, jak používat _putenv_s, viz getenv_s, _wgetenv_s.

Viz také

Řízení procesů a prostředí
getenv, _wgetenv
_searchenv, _wsearchenv