Exportar (0) Imprimir
Expandir todo
and
div
eof
not
or
xor
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_dupenv_s_dbg, _wdupenv_s_dbg

Obtiene un valor del entorno actual. Versiones de _dupenv_s, _wdupenv_s que asignan memoria con _malloc_dbg para proporcionar información de depuración adicional.

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

Búfer en el que se va a almacenar el valor de la variable.

numberOfElements

Tamaño de buffer.

varname

Nombre de la variable de entorno.

blockType

Tipo de bloque de memoria solicitado: _CLIENT_BLOCK o _NORMAL_BLOCK.

filename

Puntero al nombre del archivo de código fuente o de NULL.

linenumber

Número de línea del archivo de código fuente o NULL.

Devuelve cero si se ejecuta correctamente; devuelve un código de error si se produce un error.

Estas funciones validan sus parámetros; si buffer o varname es NULL, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, las funciones establecen errno en EINVAL y devuelven EINVAL.

Si estas funciones no pueden asignar suficiente memoria, establecen buffer en NULL y numberOfElements en 0, y devuelven ENOMEM.

Las funciones _dupenv_s_dbg y _wdupenv_s_dbg son idénticas a _dupenv_s y _wdupenv_s, salvo que, si se define _DEBUG, estas funciones usan la versión de depuración de malloc, _malloc_dbg, para asignar memoria para el valor de la variable de entorno. Para obtener información sobre las características de depuración de _malloc_dbg, vea _malloc_dbg.

En la mayoría de los casos, no es necesario llamar a estas funciones explícitamente en la mayoría. En lugar de ello, se puede definir la marca _CRTDBG_MAP_ALLOC. Si se define _CRTDBG_MAP_ALLOC, las llamadas a _dupenv_s y _wdupenv_s se reasignan a _dupenv_s_dbg y _wdupenv_s_dbg, respectivamente, con el parámetro blockType establecido en _NORMAL_BLOCK. Por consiguiente, no necesario llamar a estas funciones explícitamente a menos que se desee marcar los bloques del montón como _CLIENT_BLOCK. Para obtener más información sobre los tipos de bloques, vea Tipos de bloques en el montón de depuración.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tdupenv_s_dbg

_dupenv_s_dbg

_dupenv_s_dbg

_wdupenv_s_dbg

Rutina

Encabezado necesario

_dupenv_s_dbg

<crtdbg.h>

_wdupenv_s_dbg

<crtdbg.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft