_dupenv_s, _wdupenv_s
Obtiene un valor del entorno actual.
Importante |
---|
Esta API no se puede utilizar en las aplicaciones que se ejecutan en tiempo de ejecución de Windows.Para obtener más información, vea Funciones CRT no compatibles 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 para almacenar el valor de la variable.numberOfElements
Tamaño de buffer.varname
Nombre de la variable de entorno.
Valor devuelto
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 EINVAL return.
Si estas funciones no pueden asignar suficiente memoria, establecen buffer a NULL y a numberOfElements a 0, y devuelven ENOMEM.
Comentarios
La función de _dupenv_s busca en la lista de variables de entorno para varname.Si se encuentra la variable, _dupenv_s asigna un búfer y copia el valor de la variable en el búfer.Devuelve la dirección y la longitud del búfer en buffer y numberOfElements.Asignando el búfer propia, _dupenv_s proporciona una alternativa más cómodo a getenv_s, _wgetenv_s.
[!NOTA]
Es responsabilidad del programa de llamada liberar memoria llamando a free.
Si la variable no se encuentra, después 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 no está interesado en el tamaño de búfer puede pasar NULL para numberOfElements.
_dupenv_s no distingue entre mayúsculas y minúsculas en el sistema operativo Windows._dupenv_s utiliza la copia del entorno indicada por la variable global _environ para tener acceso al entorno.Vea las notas de getenv_s, _wgetenv_s para obtener una descripción de _environ.
El valor de buffer es una copia del valor de la variable de entorno; modificación de no tiene efecto en el entorno.Utilice la función de _putenv_s, _wputenv_s 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.La variable global de _wenviron es una versión con caracteres anchos de _environ.Vea las notas de getenv_s, _wgetenv_s para más de _wenviron.
Asignaciones de la rutina de Genérico- texto
Rutina de TCHAR.H |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tdupenv_s |
_dupenv_s |
_dupenv_s |
_wdupenv_s |
Requisitos
Rutina |
Encabezado necesario |
---|---|
_dupenv_s |
<stdlib.h> |
_wdupenv_s |
<stdlib.h> o <wchar.h> |
Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.
Ejemplo
// 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
}
Resultados del ejemplo
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
Equivalente en .NET Framework
System::Environment::GetEnvironmentVariable