_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_s
mapová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_s
je verze širokého znaku _putenv_s
envstring
; 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 system
a 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 _wenviron
tí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