_dupenv_s, _wdupenv_s
Ruft einen Wert aus der aktuellen Umgebung ab.
Wichtig |
---|
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. |
errno_t _dupenv_s( char **buffer, size_t *numberOfElements, const char *varname ); errno_t _wdupenv_s( wchar_t **buffer, size_t *numberOfElements, const wchar_t *varname );
Parameter
buffer
Der Puffer, dem der Wert der Variablen zu speichern.numberOfElements
Größe von buffer.varname
Umgebungsvariablenname.
Rückgabewert
Null bei Erfolg, ein Fehlercode auf Fehler.
Diese Funktionen überprüfen ihre Parameter; wenn buffer oder varnameNULL ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, legen die Funktionen errno auf EINVAL fest und geben EINVAL zurück.
Wenn diese Funktionen nicht genügend Arbeitsspeicher zuordnen können, legen Sie sie buffer zu NULL und zu numberOfElements auf 0 und Rückgabe ENOMEM fest.
Hinweise
Die _dupenv_s-Funktion sucht die Liste der Umgebungsvariablen für varname.Wenn die Variable gefunden wird, wird _dupenv_s einen Puffer zu und kopiert den Wert der Variablen in den Puffer.Die die Adresse und die Länge Puffers werden in buffer und in numberOfElements zurückgegeben.Mithilfe des Puffer selbst zuordnet, stellt _dupenv_s eine zweckmäßigere Alternative zu getenv_s, _wgetenv_s bereit.
Hinweis |
---|
Es liegt in der Verantwortung des aufrufende Programm, den Speicher freigeben, indem Frei aufruft. |
Wenn die Variable nicht gefunden wird, wird buffer zu NULL festgelegt, wird numberOfElements auf 0 festgelegt, und der Rückgabewert ist 0, da diese Situation nicht als Fehlerzustand betrachtet wird.
Wenn Sie nicht mit der Größe des Puffers möchten, können Sie NULL für numberOfElements übergeben.
_dupenv_s ist nicht im Windows-Betriebssystem die Groß-/Kleinschreibung beachtet._dupenv_s verwendet die Kopie der Umgebung, die durch die globale Variable _environ dargestellt werden, um auf die Umgebung auf.Siehe die Hinweise in getenv_s, _wgetenv_s Erläuterungen zur _environ.
Der Wert in buffer ist eine Kopie des Werts der Umgebungsvariablen; Ändern der hat keine Auswirkungen auf die Umgebung.Verwenden Sie die _putenv_s, _wputenv_s-Funktion, um den Wert einer Umgebungsvariablen zu ändern.
_wdupenv_s ist eine Breitzeichen-Version von _dupenv_s; die Argumente von _wdupenv_s sind Breitzeichen-Zeichenfolgen.Die globale Variable _wenviron ist eine Breitzeichen-Version von _environ.Siehe die Hinweise in getenv_s, _wgetenv_s für mehr auf _wenviron.
Zuordnung generische Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert. |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tdupenv_s |
_dupenv_s |
_dupenv_s |
_wdupenv_s |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_dupenv_s |
<stdlib.h> |
_wdupenv_s |
<stdlib.h> oder <wchar.h> |
So zusätzlicher Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.
Beispiel
// crt_dupenv_s.c
#include <stdlib.h>
int main( void )
{
char *pValue;
size_t len;
errno_t err = _dupenv_s( &pValue, &len, "pathext" );
if ( err ) return -1;
printf( "pathext = %s\n", pValue );
free( pValue );
err = _dupenv_s( &pValue, &len, "nonexistentvariable" );
if ( err ) return -1;
printf( "nonexistentvariable = %s\n", pValue );
free( pValue ); // It's OK to call free with NULL
}
Beispielausgabe
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
.NET Framework-Entsprechung
System::Environment::GetEnvironmentVariable