Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

_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 para almacenar el valor de la variable.

numberOfElements

Tamaño de buffer.

varname

Nombre de la variable de entorno.

blockType

Tipo solicitado del bloque de memoria: _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.

Cero en correctamente, un código de error del error.

estas funciones validan sus parámetros; si buffer o varname es NULL, se invoca el controlador no válido del parámetro tal como se describe en Validación de parámetros. Si la ejecución puede continuar, errno establecido funciones a EINVAL y a EINVALreturn.

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

Las funciones de _dupenv_s_dbg y de _wdupenv_s_dbg son idénticas a _dupenv_s y a _wdupenv_s salvo que, cuando _DEBUG está definido, estas funciones utilizan 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.

No necesita llamar a estas funciones explícitamente en la mayoría de los casos. En su lugar, puede definir el marcador _CRTDBG_MAP_ALLOC. Cuando _CRTDBG_MAP_ALLOC está definido, las llamadas a _dupenv_sy _wdupenv_s se reasignan a _dupenv_s_dbg y a _wdupenv_s_dbg, respectivamente, con blockType establecido en _NORMAL_BLOCK. Por consiguiente, no necesita llamar a estas funciones explícitamente a menos que desee marcar los bloques de pila como _CLIENT_BLOCK. Para obtener más información sobre tipos bloqueados, vea Tipos de bloques en el montón de depuración.

Asignaciones de la rutina de texto genérico

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_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: