environ

ENVIRON(5)                Manual del Programador Linux                ENVIRON(5)



NOMBRE
       environ - entorno del usuario

SINOPSIS
       extern char **environ;

DESCRIPCIÓN
       La variable environ apunta a un vector de cadenas llamado `el entorno'.
       (Esta variable se debe declarar en el programa de usuario, aunque se
       declara en el fichero cabecera unistd.h en el caso de que los ficheros
       cabecera procedan de libc4 o libc5 y en el caso de que procedan de glibc
       y se haya definido _GNU_SOURCE.)  Cuando un proceso comienza, exec(3) le
       proporciona este vector de cadenas.  Por convenio, estas cadenas son de
       la forma `nombre=valor'.  Algunos ejemplos comunes son:

       USER   El nombre del usuario que ha entrado en el sistema (usado por
              algunos programas derivados de BSD).

       LOGNAME
              El nombre del usuario que ha entrado en el sistema (usado por
              algunos programas derivados de System-V).

       HOME   El directorio de entrada del usuario, puesto por login(1) a partir
              del fichero de cuentas passwd(5).

       LANG   El nombre de una localización para su empleo como categoría de
              localizaciones cuando no se suministra la variable de ambiente
              LC_ALL o alguna otra más específica como LC_COLLATE, LC_CTYPE,
              LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME, cf.  locale(5).

       PATH   Lista de nombres de directorios que sh(1) y muchos otros programas
              emplean cuando buscan un fichero cuyo nombre de camino es
              incompleto.  Los nombres se separaran por `:'.  (De forma análoga
              tenemos CDPATH que utilizan algunas shells para buscar el
              argumento de una orden de cambio de directorio de trabajo, MANPATH
              empleado por man(1) para buscar páginas del Manual, etc.)

       PWD    El directorio de trabajo en curso. Puesto por varias shells.

       SHELL  El nombre del intérprete de órdenes usado por el usuario cuando
              entra en su cuenta.

       TERM   El tipo de terminal para la cual se va a formatear la salida.

       PAGER  La utilidad preferida por el usuario para mostrar el contenido de
              ficheros de texto.

       EDITOR/VISUAL
              La utilidad preferida por el usuario para editar ficheros de
              texto.

       BROWSER
              La utilidad preferida por el usuario para navegar por URLs.
              Contiene una secuencia de navegadores separados por dos puntos.
              Vea http://www.tuxedo.org/~esr/BROWSER/ .

       Se pueden poner otros nombres en el entorno mediante la orden export y
       `nombre=valor' en sh(1), o mediante la orden setenv en csh(1).  También
       se pueden poner argumentos en el entorno cuando se llama a exec(2).  Un
       programa en C puede manipular su entorno mediante las funciones getenv(),
       putenv(), setenv() y unsetenv().

       Observe que el comportamiento de muchos programas y funciones de
       biblioteca se ve influenciado por la presencia o valor de ciertas
       variables de entorno.  Una colección al azar:

       Las variables LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES,
        etc., tienen influencia en el manejo de localizaciones, cf.
        .BR locale (5).

       TMPDIR tiene influencia sobre el prefijo de nombres de ficheros creados
       por tempnam() y otras rutinas, el directorio temporal utilizado por
       sort(1) y otros programas, etc.

       LD_LIBRARY_PATH, LD_PRELOAD y otras variables que comienzan por LD_
       tienen influencia sobre el comportamiento del enlazador/cargador
       dinámico.

       POSIXLY_CORRECT hace que ciertos programas y funciones de biblioteca
       sigan las prescripciones de POSIX.

       El comportamiento de malloc(3) viene determinado por variables cuyos
       nombres comienzan por MALLOC_.

       La variable HOSTALIASES da el nombre de un fichero que contiene alias que
       utilizará la función gethostbyname(3).

       TZ y TZDIR proporcionan información sobre el huso horario que es usada
       por tzset(3) y por funciones como ctime(), localtime(), mktime(),
       strftime().  Véase también tzselect(1).

       TERMCAP da información sobre cómo manejar una terminal dada (o da el
       nombre de un fichero que contiene esa información).

       COLUMNS y LINES informan a las aplicaciones sobre el tamaño de la
       ventana, sobreescribiendo posiblemente el tamaño real.

       PRINTER o LPDEST pueden especificar la impresora que se desea usar. Vea
       lpr(1).

       Etc.

FALLOS
       Claramente aquí hay un riesgo en cuanto a la seguridad. Muchas veces una
       orden del sistema ha sido forzada a actuar de forma malintencionadamente
       incorrecta por un usuario que ha especificado valores inusuales para IFS
       o LD_LIBRARY_PATH.

       También hay riesgo de contaminación del espacio de nombres.  Programas
       como make y autoconf permiten sobreescribir los nombres de utilidades por
       defecto del entorno con variables de nombre similar en todas las
       capitalizaciones.  De esta forma se debe usar CC para seleccionar el
       compilador de C deseado (y similarmente) MAKE, AR, AS, FC, LD, LEX, RM,
       YACC, etc.).  Sin embargo, en algunos usos típicos tales variables de
       entorno contienen opciones para los programas en lugar de un nombre de
       camino.  Así, pueden encontrarse MORE, LESS, y GZIP.  Tal uso es
       considerado erróneo y se aconseja evitarlo en programas nuevos. Los
       autores de gzip deberían considerar renombrar sus opciones a GZIP_OPT.

VÉASE TAMBIÉN
       login(1), sh(1), bash(1), csh(1), tcsh(1), execve(2), exec(3), getenv(3),
       putenv(3), setenv(3), clearenv(3), unsetenv(3), locale(5)



Linux                           14 diciembre 2001                     ENVIRON(5)