Saltar al contenido

Acceder a variables de entorno en C ++

Este team de expertos pasados muchos días de trabajo y de juntar de información, dimos con la solución, nuestro deseo es que te sea útil en tu trabajo.

Solución:

No hay nada de malo en usar getenv() en C ++. Está definido por stdlib.h, o si prefiere la implementación de la biblioteca estándar, puede incluir cstdlib y acceder a la función a través del std:: espacio de nombres (es decir, std::getenv()). Absolutamente nada de malo en esto. De hecho, si le preocupa la portabilidad, se prefiere cualquiera de estas dos versiones.

Si usted es no preocupado por la portabilidad y está usando C ++ administrado, puede usar el equivalente de .NET – System::Environment::GetEnvironmentVariable(). Si desea el equivalente que no es de .NET para Windows, simplemente puede usar el GetEnvironmentVariable() Función Win32.

Simplemente refactorizaría el código un poco:

std::string getEnvVar( std::string const & key ) const

    char * val = getenv( key.c_str() );
    return val == NULL ? std::string("") : std::string(val);

  • Si está en Windows, puede usar la API Win32 GetEnvironmentVariable
  • En otros sistemas basados ​​en Linux / Unix, use getenv

Por qué utilizar GetEnvironmentVariable en Windows, de MSDN getenv:

getenv opera solo en las estructuras de datos accesibles a la biblioteca en tiempo de ejecución y no en el “segmento” del entorno creado para el proceso por el sistema operativo. Por lo tanto, los programas que usan el argumento envp para main o wmain pueden recuperar información no válida.

Y de MSDN GetEnvironment:

Esta función puede recuperar una variable de entorno del sistema o una variable de entorno de usuario.

Reseñas y puntuaciones

Eres capaz de añadir valor a nuestra información contribuyendo tu veteranía en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *