_dupenv_s, _wdupenv_s

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Obtiene un valor del entorno actual.

System_CAPS_ICON_important.jpg Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para más información, vea Funciones de CRT no admitidas con /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  
);  

Parámetros

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.

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 del parámetro. 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.

La función _dupenv_s busca varname en la lista de variables de entorno. Si se encuentra la variable, _dupenv_s asigna un búfer y copia el valor de la variable en el búfer. La dirección y la longitud del búfer se devuelven en buffer y numberOfElements. Al asignar el búfer, _dupenv_s proporciona una alternativa más conveniente para getenv_s, _wgetenv_s.

System_CAPS_ICON_note.jpg Nota

Es responsabilidad del programa de llamada para liberar la memoria mediante una llamada a libre.

Si no se encuentra la variable, buffer se establece en NULL, numberOfElements se establece en 0 y el valor devuelto es 0, porque esta situación no se considera una condición de error.

Si el tamaño de búfer no le interesa, puede pasar NULL para numberOfElements.

_dupenv_s no distingue entre mayúsculas y minúsculas en el sistema operativo Windows. _dupenv_s usa la copia del entorno indicado por la variable global _environ para tener acceso al entorno. Vea los comentarios de getenv_s, _wgetenv_s para obtener una explicación de _environ.

El valor de buffer es una copia del valor de la variable de entorno; su modificación no afecta al entorno. Utilice la _putenv_s, _wputenv_s (función) para modificar el valor de una variable de entorno.

_wdupenv_s es una versión con caracteres anchos de _dupenv_s; los argumentos de _wdupenv_s son cadenas de caracteres anchos. La variable global _wenviron es una versión con caracteres anchos de _environ. Vea los comentarios de getenv_s, _wgetenv_s para obtener más información sobre _wenviron.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tdupenv_s_dupenv_s_dupenv_s_wdupenv_s
RutinaEncabezado necesario
_dupenv_s<stdlib.h>
_wdupenv_s<stdlib.h> o <wchar.h>

Para obtener más información sobre compatibilidad, vea Compatibilidad.

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

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

System::Environment::GetEnvironmentVariable

Control de proceso y entorno
Constantes de entorno
_dupenv_s_dbg, _wdupenv_s_dbg
getenv_s, _wgetenv_s
_putenv_s, _wputenv_s

Mostrar: