Sdílet prostřednictvím


_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). _wputenvje verze širokého znaku _putenvenvstring ; 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 Rutinní _UNICODE and _MBCS není definováno _MBCS Definovány _UNICODE Definovány
_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_stringhodnoty 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 _spawnpomocí , _execnebo systema 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. _putenva _wputenv může změnit hodnotu a _environ_wenvirontím zneplatnění argumentu _wenvp_envpmain 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í _putenvnaleznete v tématu getenv, _wgetenv.

Viz také

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