Partager via


_dupenv_s, _wdupenv_s

Obtenir une valeur de l'environnement actuel.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans les fenêtres d'exécution.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /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
);

Paramètres

  • buffer
    Mémoire tampon pour stocker la valeur de la variable.

  • numberOfElements
    Taille d' buffer.

  • varname
    Nom de la variable d'environnement.

Valeur de retour

Zéro en cas de réussite, le code d'erreur en cas de échec.

Ces fonctions valident leurs paramètres ; si buffer ou varname est NULL, le gestionnaire de paramètre non valide est appelé comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, errno défini par fonctions à EINVAL et à EINVALde retour.

Si ces fonctions ne peuvent pas allouer suffisamment de mémoire, ils définissent buffer à NULL et à numberOfElements à 0, et le retour ENOMEM.

Notes

La fonction d' _dupenv_s recherche la liste de variables d'environnement pour varname.Si la variable est trouvée, _dupenv_s alloue une mémoire tampon et copie la valeur de la variable dans la mémoire tampon.L'adresse et la longueur de la mémoire tampon sont retournées dans buffer et numberOfElements.En allouant la mémoire tampon elle-même, _dupenv_s fournit une alternative plus pratique à getenv_s, _wgetenv_s.

[!REMARQUE]

Il est de la responsabilité du programme appelant de libérer la mémoire en appelant free.

Si la variable est introuvable, puis buffer a la valeur NULL, numberOfElements a la valeur 0, et la valeur de retour est 0 car cette situation n'est pas considérée comme une condition d'erreur.

si vous ne vous intéressez pas par la taille de la mémoire tampon vous pouvez passer NULL pour numberOfElements.

_dupenv_s ne respecte pas la casse de la casse dans le système d'exploitation Windows._dupenv_s utilise la copie de l'environnement globale pointe vers la variable globale _environ pour accéder à l'environnement.Consultez les notes dans getenv_s, _wgetenv_s pour une description d' _environ.

La valeur de buffer est une copie de la valeur de la variable d'environnement ; la modification n'a aucun effet sur l'environnement.Utilisez la fonction de _putenv_s, _wputenv_s pour modifier la valeur d'une variable d'environnement.

_wdupenv_s est une version à caractère élargi d' _dupenv_s; les arguments d' _wdupenv_s sont des chaînes à caractères larges.La variable globale d' _wenviron est une version à caractère élargi d' _environ.Consultez les notes dans getenv_s, _wgetenv_s pour plus d'informations sur _wenviron.

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tdupenv_s

_dupenv_s

_dupenv_s

_wdupenv_s

Configuration requise

Routine

En-tête requis

_dupenv_s

<stdlib.h>

_wdupenv_s

<stdlib.h> ou <wchar.h>

Pour des informations de compatibilité supplémentaires, consultez l' Compatibilité dans l'introduction.

Exemple

// 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
}

Résultat de l'exemple

pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)

Équivalent .NET Framework

System::Environment::GetEnvironmentVariable

Voir aussi

Référence

Processus et contrôle ambiance

Constantes d'environnement

_dupenv_s_dbg, _wdupenv_s_dbg

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s