Exporter (0) Imprimer
Développer tout
and
div
eof
not
or
xor
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

_dupenv_s_dbg, _wdupenv_s_dbg

Obtenir une valeur de l'environnement actuel. Versions de _dupenv_s, _wdupenv_s qui allouent la mémoire avec _malloc_dbg pour fournir des informations de débogage supplémentaires.

errno_t _dupenv_s_dbg(
   char **buffer,
   size_t *numberOfElements,
   const char *varname,
   int blockType,
   const char *filename,
   int linenumber
);
errno_t _wdupenv_s_dbg(
   wchar_t **buffer,
   size_t * numberOfElements,
   const wchar_t *varname,
   int blockType,
   const char *filename,
   int linenumber
);

buffer

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

numberOfElements

Taille du buffer.

varname

nom de la variable d'environnement

blockType

Type de bloc de mémoire demandé : _CLIENT_BLOCK ou _NORMAL_BLOCK.

filename

Pointeur du nom du fichier source ou NULL.

linenumber

Numéro de ligne dans le fichier source ou NULL.

Zéro si l'opération a réussi ; code d'erreur en cas de échec.

Ces fonctions valident leurs paramètres ; si buffer ou varname sont NULL, le gestionnaire de paramètre non valide est appelé comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, les fonctions définissent errno avec la valeur EINVAL et retournent EINVAL.

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

Les fonctions _dupenv_s_dbg et _wdupenv_s_dbg sont identiques à _dupenv_s et _wdupenv_s mais lorsque _DEBUG est défini, ces fonctions utilisent la version Debug malloc, _malloc_dbg, pour allouer de la mémoire à la variable d'environnement. Pour plus d'informations sur les fonctionnalités de débogage de _malloc_dbg, consultez _malloc_dbg.

Vous n'avez pas besoin d'appeler ces fonctions explicitement dans la plupart des cas. À la place, il vous est possible d'affecter l'indicateur _CRTDBG_MAP_ALLOC. Lorsque _CRTDBG_MAP_ALLOC est défini, les appels à _dupenv_s et l'_wdupenv_s sont remappés à _dupenv_s_dbg et _wdupenv_s_dbg, respectivement, avec blockType à la valeur _NORMAL_BLOCK. Ainsi, vous n'avez pas besoin d'appeler ces fonctions explicitement sauf si vous souhaitez marquer les blocs de tas comme _CLIENT_BLOCK. Pour plus d'informations sur les types de bloc, consultez Types de blocs sur le tas de débogage.

Mappages de routines de texte générique

Routine TCHAR.H

_UNICODE & _MBCS non définis

_MBCS défini

_UNICODE défini

_tdupenv_s_dbg

_dupenv_s_dbg

_dupenv_s_dbg

_wdupenv_s_dbg

Routine

En-tête requis

_dupenv_s_dbg

<crtdbg.h>

_wdupenv_s_dbg

<crtdbg.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

// crt_dupenv_s_dbg.c
#include  <stdlib.h>
#include <crtdbg.h>

int main( void )
{
   char *pValue;
   size_t len;
   errno_t err = _dupenv_s_dbg( &pValue, &len, "pathext",
      _NORMAL_BLOCK, __FILE__, __LINE__ );
   if ( err ) return -1;
   printf( "pathext = %s\n", pValue );
   free( pValue );
   err = _dupenv_s_dbg( &pValue, &len, "nonexistentvariable",
      _NORMAL_BLOCK, __FILE__, __LINE__ );
   if ( err ) return -1;
   printf( "nonexistentvariable = %s\n", pValue );
   free( pValue ); // It's OK to call free with NULL
}

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

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft