_dupenv_s, _wdupenv_s

Ruft einen Wert aus der aktuellen Umgebung ab.

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.

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.

HinweisHinweis

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

Siehe auch

Referenz

Prozess- und Umgebungssteuerelement

umgebungsbedingten Konstanten

_dupenv_s_dbg, _wdupenv_s_dbg

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s