Freigeben über


_putenv, _wputenv

Erstellt, geändert oder entfernt Umgebungsvariablen.Sicherere Versionen dieser Funktionen sind verfügbar; finden Sie unter _putenv_s, _wputenv_s.

Wichtiger HinweisWichtig

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

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

Parameter

  • envstring
    Umgebung-Zeichenfolgendefinition.

Rückgabewert

Geben Sie 0 zurück, wenn erfolgreich oder - 1 im Fall eines Fehlers.

Hinweise

Die Funktion _putenv 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 ist eine Breitzeichen-Version von _putenv; envstring das Argument an _wputenv ist eine Zeichenfolge mit Breitzeichen.

Zuordnung generische Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tputenv

_putenv

_putenv

_wputenv

Das envstring-Argument muss ein Zeiger auf eine Zeichenfolge des Formulars varname=string sein, in dem varname der Name der hinzugefügt werden ist Umgebungsvariable, oder geändert und string der Wert der Variable ist.Wenn varname bereits Teil der Umgebung ist, wird der Wert durch ersetzt string; andernfalls werden die neue varname-Variable und sein Wert string zur Umgebung hinzugefügt.Sie können eine Variable aus der Umgebung entfernen, indem Sie string leeres - das heißt, angeben, indem Sie nur varname= angeben.

_putenv und _wputenv 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.Das heißt, funktionieren diese Funktionen nur auf den Datenstrukturen, die der Laufzeitbibliothek zugegriffen werden kann und nicht auf dem Umgebungssegment, das für einen Prozess vom Betriebssystem erstellt wird.Wenn der aktuelle Prozess beendet wird, stellt die Umgebung an der Ebene des aufrufenden Prozesses zurückgesetzt (in den meisten Fällen, die Betriebssystemebene).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 und _wputenv hinzugefügt werden.

Ändern Sie keinen Umgebungseintrag direkt: Verwenden Sie stattdessen _putenv oder _wputenv, um es zu ändern.Insbesondere können direkte gemeinsame Nutzung Elemente möglicherweise des globalen Arrays _environ[] zu den ungültigen Speicher, der bearbeitet wird.

getenv und _putenv verwenden die globale Variable _environ, um auf die Umgebungstabelle zuzugreifen; _wgetenv und _wputenv verwenden _wenviron._putenv und _wputenv könnten den Wert von _environ und von _wenviron und so Ihnen das _envp-Argument zu main und das _wenvp-Argument zu wmain ungültig.Daher ist es sicherer, _environ oder _wenviron zu verwenden, um auf die Umgebungsinformationen zuzugreifen.Weitere Informationen über die Beziehung von _putenv und von _wputenv auf globale Variablen, finden Sie unter _environ, _wenviron.

HinweisHinweis

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

Anforderungen

Routine

Erforderlicher Header

_putenv

<stdlib.h>

_wputenv

<stdlib.h> oder <wchar.h>

Weitere Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.

Beispiel

Ein Beispiel, wie _putenv, finden Sie unter getenv, _wgetenv 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