Variables de entorno

Las variables de entorno podemos usarlas para controlar el comportamiento de los script shell y de otros programas. También puede usarlas para configurar el entorno de usuario. Por ejemplo, cada usuario tiene una variable de entorno, HOME, que define su directorio principal, por defecto, el punto de inicio de su sesión. Como ya vimos, podemos examinar las variables de entorno desde el incitador shel:

variables_entorno2La especificación UNIX define muchas variables de entorno estándar usadas para una gran variedad de cuestiones, incluyendo el tipo de terminal, los editores predeterminados, las zonas horarias, etc. Un programa C puede obtener el acceso a las variables de entorno usando las funciones putenv y getenv.

entorno2 El entorno está compuesto por cadenas con la forma name=value. La función getenv rastrea el entorno en busca de una cadena con el nombre proporcionado y envía un valor asociado a dicho nombre.

entorno3Retornará null si la variable solicitada no existe. Si la variable existe pero no tiene valor, getenv tiene éxito y enviá una cadena vacía, una cuyo primer byte sea null. La cadena enviada por getenv se mantiene en un almacenaje estático propiedad de getenv, de manera que si desea volver a usarla debe copiarla en otra cadena, de lo contrario será invalidada por las llamadas posteriores a getenv.

La función putenv adopta una cadena con el formato name=value y la añade al entorno actual.

entorno4Fallará y enviará -1 si no puede ampliar el entorno debido a una falta de memoria disponible. Cuando ocurra esto, la variable de error errno será ENOMEM.

Veamos un ejemplo que mostrará el valor de cualquier variable de entorno elegida. Si le proporciona al programa un segundo argumento, también podremos establecer el valor.

  1. Las primeras líneas que aparecen tras la declaración de main aseguran que se ha llamado correctamente al programa, environ.c, con uno o dos argumentos:entorno_programa1
  2. Hecho lo cual, adopta el valor de la variable del entorno, usando getenv:entorno_programa2
  3. A continuación, compruebe si se llamó al programa con un segundo argumento, construyendo una cadena de tipo name=value y llamando después a putenv:entorno_programa3
  4. Finalmente, descubriremos el nuevo valor de la variable llamando nuevamente a getenv.
    1. entorno_programa4

Al ejecutar el programa, podrá ver y configurar las variables de entorno:

entorno_salidaTenga en cuenta que el entorno es local únicamente para el programa. Los cambios que realice en el programa no se reflejarán fuera porque los valores de las variables no se transmiten del proceso hijo (su programa) al padre (la shell).

atras

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s