Sdílet prostřednictvím


_putenv, _wputenv

Vytvoří, změní nebo odebere proměnné prostředí.Bezpečnější verze těchto funkcí jsou k dispozici; viz _putenv_s, _wputenv_s.

Důležitá poznámkaDůležité

Toto API nelze použít v aplikacích, které jsou spuštěny v modulu Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW.

int _putenv(
   const char *envstring 
);
int _wputenv(
   const wchar_t *envstring 
);

Parametry

  • envstring
    Definice řetězců prostředí.

Vrácená hodnota

Vrátit 0 v případě úspěchu nebo –1 v případě chyby.

Poznámky

Funkce _putenv přidává nové proměnné prostředí nebo upravuje 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 pro vyhledávání pro knihovny, které chcete propojit s programem)._wputenv je širokoznaká verze _putenv; argument envstring pro _wputenv je širokoznaký řetězec.

Rutinní mapování obecného textu

Rutina Tchar.h

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_tputenv

_putenv

_putenv

_wputenv

Argument envstring musí být ukazatel na řetězec ve formě varname=string, kde varname je název proměnné prostředí, kterou chcete přidat nebo upravit, a string je hodnota proměnné.Pokud varname je již součástí životního prostředí, její hodnota je nahrazena string; jinak nová proměnná varname a její hodnota string jsou přidány do prostředí.Proměnnou můžete odebrat z prostředí zadáním prázdného string – jinými slovy, zadáním pouze varname=.

_putenv a _wputenv mají vliv na prostředí, které je místní pro aktuální proces; nelze je použít ke změně úrovně příkazového prostředí.To znamená, že tyto funkce pracují pouze na datových strukturách dostupných knihovně runtime a ne na segmentu prostředí vytvořeném pro proces operačním systémem.Když skončí aktuální proces, prostředí se vrátí na úroveň volajícího procesu (ve většině případů na úroveň operačního systému).Upravené prostředí však lze předat do všech nových procesů vytvořených pomocí _spawn, _exec nebo system a tyto nové procesy budou mít přidány všechny nové položky pomocí _putenv a _wputenv.

Neměňte položku prostředí přímo: místo toho použijte ke změně _putenv nebo _wputenv.Zejména přímé uvolňování prvků globálního pole _environ[] by mohlo vést k adresování neplatné paměti.

getenv a _putenv používají globální proměnnou _environ k přístupu k tabulce prostředí; _wgetenv a _wputenv používají _wenviron._putenv a _wputenv může změnit hodnotu _environ a_wenviron, a zrušit tak platnost argumentu _envp na main a argumentu wenvp na wmain.Proto je bezpečnější používat _environ nebo _wenviron pro přístup k informacím o prostředí.Další informace o vztahu _putenv a _wputenv ke globálním proměnným viz _environ _wenviron.

[!POZNÁMKA]

Rodiny _putenv a _getenv funkcí nejsou vláknově bezpečné._getenv může vrátit ukazatel řetězce, zatímco _putenv upravuje řetězec, což způsobí náhodná selhání.Ujistěte se, že volání těchto funkcí jsou synchronizována.

Požadavky

Rutina

Požadované záhlaví

_putenv

<stdlib.h>

_wputenv

<stdlib.h> nebo <wchar.h>

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

Příklad

Příklad použití _putenv, viz getenv, _wgetenv.

Ekvivalent v rozhraní .NET Framework

Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.

Viz také

Referenční dokumentace

Řízení procesů a prostředí

getenv, _wgetenv

_searchenv, _wsearchenv