Sdílet prostřednictvím


_putenv_s, _wputenv_s

Vytvoří, změní nebo odebere systémové proměnné.Jedná se o verze _putenv, _wputenv , ale vylepšení zabezpečení, jak je popsáno v Funkce zabezpečení v CRT.

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

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

errno_t _putenv_s(
   const char *name,
   const char *value 
);
errno_t _wputenv_s(
   const wchar_t *name,
   const wchar_t *value
);

Parametry

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

  • value
    Hodnotu, chcete-li nastavit proměnnou prostředí.

Vrácená hodnota

Vrátí hodnotu 0 v případě úspěchu nebo kód chyby.

Chybové stavy

name

value

Vrácená hodnota

NULL

všechny

EINVAL

všechny

NULL

EINVAL

Pokud dojde k jedné z chybových stavů, tyto funkce vyvolat obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametru.Pokud je povoleno zpracování, chcete-li pokračovat, tyto funkce vracejí EINVAL a errno na EINVAL.

Poznámky

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

Mapování rutiny obecného textu

TCHAR.Byla zahájena rutina h

_UNICODE & _MBCS není definováno

_MBCS, definice

_UNICODE definována

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

nameje název proměnné prostředí, chcete-li přidat nebo upravit a value je hodnota proměnné.Pokud name je již součástí životního prostředí, její hodnota se nahrazuje value; jinak nové name proměnné a jeho value jsou přidány do životního prostředí.Proměnné lze odebrat z prostředí zadáním prázdného řetězce (to znamená "") pro value.

_putenv_sa _wputenv_s ovlivnit pouze prostředí, která je umístěna na aktuální proces; je nelze použít k úpravě prostředí úrovni příkazu.Tyto funkce pracují pouze na datových struktur, které jsou k dispozici knihovna run-time a ne na životní prostředí "segment", který operační systém se vytvoří pro proces.Aktuální proces ukončen, životní prostředí se vrátí na úroveň volající proces, který je ve většině případů je úrovni operačního systému.Upravené prostředí však může být předán nové procesy, které jsou vytvářeny _spawn, _exec, nebo system, a tyto nové procesy získat nové položky, které jsou přidány pomocí _putenv_s a _wputenv_s.

Neměňte položku prostředí přímo; Místo toho použijte _putenv_s nebo _wputenv_s ji změnit.Zejména prvky uvolnění přímo _environ[] globální pole může způsobit, že neplatné paměti se zaměřit.

getenva _putenv_s , použijte globální proměnnou _environ k přístupu k tabulce prostředí; _wgetenvand _wputenv_s use _wenviron._putenv_sa _wputenv_s může změnit hodnotu _environ a _wenvirona tím znehodnotit envp argument main a _wenvp argument wmain.Proto je bezpečnější používat _environ nebo _wenviron přístup k informacím prostředí.Další informace o vztah mezi _putenv_s a _wputenv_s na globální proměnné, viz _environ, _wenviron.

[!POZNÁMKA]

_putenv_s a _getenv_s rodin funkcí jsou vláknově bezpečné._getenv_smůže vrátit ukazatel na řetězec při _putenv_s je úprava řetězce a tím způsobit náhodné selhání.Ujistěte se, že volání na tyto funkce jsou synchronizovány.

Požadavky

Byla zahájena rutina

Požadované záhlaví

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> nebo <wchar.h>

Další informace o kompatibilitě, viz Kompatibilita.

Příklad

Příklad, který ukazuje, jak použít _putenv_s, viz getenv_s, _wgetenv_s.

Ekvivalent v rozhraní .NET Framework

Nelze použít Volání funkce standardním C pomocí 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