Freigeben über


_putenv_s, _wputenv_s

Erstellt, geändert oder entfernt Umgebungsvariablen.Diese sind, Versionen von _putenv, _wputenv jedoch haben Sicherheitserweiterungen, wie in Sicherheitsfeatures im CRT beschrieben.

Wichtiger HinweisWichtig

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

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 Wert, um die Umgebungsvariable auf festzulegen.

Rückgabewert

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

Fehlerbedingungen

name

value

Rückgabewert

NULL

any

EINVAL

any

NULL

EINVAL

Wenn einer der Fehlerbedingungen auftritt, rufen diese Funktionen einen ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, geben diese Funktionen EINVAL zurück und legen errno auf EINVAL fest.

Hinweise

Die Funktion _putenv_s fügt neue Umgebungsvariablen hinzu oder ändert die Werte vorhandener Umgebungsvariablen.Umgebungsvariablen definieren die Umgebung, in der ein Prozess ausgeführt wird (beispielsweise, Standard Suchpfad, damit Bibliotheken mit einem Programm verknüpft werden können)._wputenv_s ist eine Breitzeichen-Version von _putenv_s; envstring das Argument an _wputenv_s ist eine Zeichenfolge mit Breitzeichen.

Zuordnung generische 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 hinzugefügt werden Umgebungsvariable, oder geändert und value ist der Wert der Variablen.Wenn name bereits Teil der Umgebung ist, wird der Wert durch ersetzt value; andernfalls werden die neue name-Variable und sein value zur Umgebung hinzugefügt.Sie können eine Variable aus der Umgebung entfernen, indem Sie eine leere Zeichenfolge (das heißt, "") für value angeben.

_putenv_s und _wputenv_s wirken sich nur auf die Umgebung, die für den aktuellen Prozess lokal ist; Sie können sie nicht verwenden, um die Umgebung auf Befehlsebene.Diese Funktionen funktionieren nur auf Datenstrukturen, die der Laufzeitbibliothek und nicht auf der Umgebung "Segment" zugänglich sind, die das Betriebssystem für einen Prozess erstellt.Wenn der aktuelle Prozess beendet wird, stellt die Umgebung an der Ebene des aufrufenden Prozesses zurückgesetzt, der in den meisten Fällen die Betriebssystemebene ist.kann jedoch die geänderte Umgebung auf alle neuen Prozessen übergeben werden, die von _spawn, _exec oder system erstellt werden, und diese neuen Prozesse rufen alle neuen Artikel ab, die von _putenv_s und _wputenv_s hinzugefügt werden.

Ändern Sie keinen Umgebungseintrag direkt; Verwenden Sie stattdessen _putenv_s oder _wputenv_s, um es zu ändern.Insbesondere Elemente des globalen Arrays _environ[] direkt gehen möglicherweise ungültigen Speicher freigeben behandelt werden sollen.

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 sich möglicherweise den Wert von _environ und von _wenviron und ungültig wird dadurch das envp-Argument zu main und das _wenvp-Argument zu wmain.Daher ist es sicherer, _environ oder _wenviron zu verwenden, um auf die Umgebungsinformationen zuzugreifen.Weitere Informationen über das Verhältnis von _putenv_s und von _wputenv_s auf globale Variablen, finden Sie unter _environ, _wenviron.

HinweisHinweis

Die _putenv_s und _getenv_s Familien von Funktionen sind nicht threadsicher._getenv_s konnte einen Zeichenfolgenzeiger, während _putenv_s die Zeichenfolge geändert, und dadurch Zufallsausfälle der Ursache zurückgeben.Überprüfen Sie, ob Aufrufe dieser Funktionen synchronisiert werden.

Anforderungen

Routine

Erforderlicher Header

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> oder <wchar.h>

So zusätzlicher Kompatibilitätsinformation finden Sie unter Kompatibilität.

Beispiel

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

.NET Framework-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Prozess- und Umgebungssteuerelement

getenv, _wgetenv

_searchenv, _wsearchenv