_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.
Wichtig |
---|
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.
Hinweis |
---|
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.