_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