_putenv
, _wputenv
Vytvoří, upraví nebo odebere proměnné prostředí. K dispozici jsou bezpečnější verze těchto funkcí; viz _putenv_s
, _wputenv_s
.
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é.
Syntaxe
int _putenv(
const char *envstring
);
int _wputenv(
const wchar_t *envstring
);
Parametry
envstring
Definice řetězce prostředí
Vrácená hodnota
Pokud dojde k chybě, vrátí funkce hodnotu 0, nebo -1.
Poznámky
Funkce _putenv
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
je verze širokého znaku _putenv
envstring
; argument je _wputenv
ř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í rutin obecného textu
Tchar.h rutina |
_UNICODE and _MBCS není definováno |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_tputenv |
_putenv |
_putenv |
_wputenv |
Argument envstring
musí být ukazatel na řetězec formuláře varname=value_string
, kde varname
je název proměnné prostředí, která se má přidat nebo upravit a value_string
je hodnotou proměnné. Pokud varname
je již součástí prostředí, jeho hodnota se nahradí value_string
; v opačném případě se nová varname
proměnná a její value_string
hodnota přidají do prostředí. Proměnnou můžete z prostředí odebrat zadáním prázdné value_string
hodnoty nebo jinými slovy zadáním pouze varname
=.
_putenv
a _wputenv
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ů. To znamená, že tyto funkce pracují pouze s datovými strukturami dostupnými pro knihovnu za běhu. Nefungují v segmentu prostředí vytvořeném pro proces operačním systémem. Když se aktuální proces ukončí, prostředí se vrátí na úroveň volajícího procesu (ve většině případů na úrovni operačního systému). Upravené prostředí však lze předat všem novým procesům vytvořeným _spawn
pomocí , _exec
nebo system
a tyto nové procesy získávají všechny nové položky přidané do _putenv
a _wputenv
.
Neměňte položku prostředí přímo: místo toho ji použijte _putenv
nebo _wputenv
změňte. Zejména přímé uvolnění prvků globálního _environ[]
pole může vést k tomu, že se řeší neplatná paměť.
_getenv
a _putenv
použijte globální proměnnou _environ
pro přístup k tabulce _wgetenv
prostředí a _wputenv
použijte _wenviron
. _putenv
a _wputenv
může změnit hodnotu a _environ
_wenviron
tím zneplatnění argumentu _wenvp
_envp
main
na argument a 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
a globálních proměnných naleznete v tématu_environ
, _wenviron
._wputenv
Poznámka:
Funkce _putenv
a _getenv
jejich rodiny nejsou bezpečné pro přístup z více vláken. _getenv
může vrátit ukazatel řetězce při _putenv
úpravě řetězce, což způsobuje náhodná selhání. Ujistěte se, že jsou volání těchto funkcí synchronizovaná.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_putenv |
<stdlib.h> |
_wputenv |
<stdlib.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
Ukázku použití _putenv
naleznete v tématu getenv
, _wgetenv
.
Viz také
Řízení procesů a prostředí
getenv
, _wgetenv
_searchenv
, _wsearchenv