Share via


_putenv_s, _wputenv_s

Erstellt, ändert oder entfernt Umgebungsvariablen. Diese Versionen von _putenv, _wputenv sind, aber noch werden, wie in Sicherheitsfunktionen in der CRT beschrieben.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die im Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.

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

Parameter

  • name
    Der Umgebungsvariablenname.

  • value
    Der festzulegende Wert die Umgebungsvariable zu.

Rückgabewert

Gibt, wenn 0 erfolgreich oder einen Fehlercode zurück.

Fehlerbedingungen

name

value

Rückgabewert

NULL

any

EINVAL

any

NULL

EINVAL

Wenn einer der Fehlerzustände auftritt, rufen diese Funktionen einen ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen EINVAL zurück und stellen errno auf EINVAL ein.

Hinweise

Die _putenv_s-Funktion fügt neue Umgebungsvariablen hinzu oder ändert die Werte vorhandener Umgebungsvariablen. Umgebungsvariablen definieren die Umgebung, in der ein Prozess ausgeführt wird (beispielsweise der Standardsuchpfad für die mit einem Programm zu verknüpfenden Bibliotheken). _wputenv_s ist eine Breitzeichenversion von _putenv_s. Das envstring-Argument für _wputenv_s ist eine Breitzeichenfolge.

Zuordnung generischer Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

name ist der Name der hinzuzufügenden Umgebungsvariable, oder geändert und value ist der Wert der Variablen. Wenn name bereits Teil der Umgebung ist, wird sein Wert ersetzt durch value; Andernfalls werden die neue Variable name und value zur Umgebung hinzugefügt. Sie können eine Variable aus der Umgebung entfernt, indem Sie eine leere Zeichenfolge (""), das heißt für value angeben.

_putenv_s und _wputenv_s wirken sich nur auf die Umgebung aus, die für den aktuellen Prozess lokal ist. Sie können sie nicht zum Ändern der Umgebung auf Befehlsebene verwenden. Diese Funktionen funktionieren nur auf Datenstrukturen, die zur Laufzeitbibliothekstyps und nicht für die Umgebung "Segment" zugegriffen werden kann, die das Betriebssystem für einen Prozess erstellt. Wenn der aktuelle Prozess beendet wird, wird die Umgebung an der Ebene des aufrufenden Prozesses zurückgesetzt, der in den meisten Fällen die Betriebssystemebene ist. kann jedoch geänderte Umgebung zu allen neuen Prozesse übergeben werden, die von _spawn, _exec oder system erstellt werden, und dieser neuen Prozesse rufen alle neuen Elemente ab, die von _putenv_s und _wputenv_s hinzugefügt werden.

Ändern Sie keine Umgebungseintrag direkt; Verwenden Sie stattdessen _putenv_s oder _wputenv_s, um sie zu ändern. Insbesondere Elemente des globalen Arrays _environ[] direkt Unterschied freigeben möglicherweise ungültigen Speicher behoben werden.

getenv und _putenv_s verwenden die globale Variable _environ, um auf die Umgebungstabelle zuzugreifen; _wgetenv und _wputenv_s verwenden _wenviron. _putenv_s und _wputenv_s ändern kann den Wert von _environ und _wenviron und NULL und das Argument envp von main und _wenvp das Argument in wmain. Es ist daher sicherer mit _environ oder _wenviron auf die Umgebungsinformationen zuzugreifen. Weitere Informationen zum Verhältnis von _putenv_s und _wputenv_s auf die globalen Variablen, finden Sie unter _environ, _wenviron.

Hinweis

Die Familien _putenv_s und _getenv_s der Funktionen sind nicht threadsicher._getenv_s kann einen Zeichenfolgenzeiger, während _putenv_s die Zeichenfolge geändert, und dadurch Zufallsausfällen der Ursache zurückgeben.Stellen Sie sicher, dass Aufrufe dieser Funktionen synchronisiert sind.

Anforderungen

Routine

Erforderlicher Header

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> oder <wchar.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

Ein Beispiel, das zeigt, wie _putenv_s verwendet wird, finden Sie unter getenv_s, _wgetenv_s.

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Prozess- und Umgebungssteuerung

getenv, _wgetenv

_searchenv, _wsearchenv