.\" Copyright (c) 1993 Michael Haardt (michael@moria.de), .\" Fri Apr 2 11:32:09 MET DST 1993 .\" and Andries Brouwer (aeb@cwi.nl), Fri Feb 14 21:47:50 1997. .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. .\" .\" Modified Sun Jul 25 10:45:30 1993 by Rik Faith (faith@cs.unc.edu) .\" Translated Mon Jun 24 12:55:40 1996 by Diego Novillo (diego@cs.ualberta.ca) .\" Modified Sun Jul 21 21:25:26 1996 by Andries Brouwer (aeb@cwi.nl) .\" Modified Mon Oct 21 17:47:19 1996 by Eric S. Raymond (esr@thyrsus.com) .\" Modified Wed Aug 27 20:28:58 1997 by Nicolás Lichtmaier .\" Modified Mon Sep 21 00:00:26 1998 by Andries Brouwer (aeb@cwi.nl) .\" Translation revised Fri Apr 3 1998 by Juan Piernas .\" Translation fixed on Mon Apr 27 18:22:37 CEST 1998 by Gerardo .\" Aburruzaga García .\" Translation revised Wed Dec 30 1998 by Juan Piernas .\" Translation revised Sun Apr 4 1999 by Juan Piernas .\" .TH ENVIRON 7 "21 Octubre 1996" "Linux" "Manual del Programador Linux" .SH NOMBRE environ \- Entorno del usuario .SH SINOPSIS .ad l .nf .B extern char **environ; .br .fi .ad b .SH DESCRIPCIÓN La variable .I 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 .I 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 .BR _GNU_SOURCE .) Cuando un proceso comienza, \fBexec\fP(3) le proporciona este vector de cadenas. Por convenio, estas cadenas son de la forma `\fInombre\fP\fB=\fP\fIvalor\fP'. Algunos ejemplos comunes son: .TP .B USER El nombre del usuario que ha entrado en el sistema (usado por algunos programas derivados de BSD). .TP .B LOGNAME El nombre del usuario que ha entrado en el sistema (usado por algunos programas derivados de System-V). .TP .B HOME El directorio de entrada del usuario, puesto por \fBlogin\fP a partir del fichero de cuentas \fBpasswd\fP(5). .TP .B LANG El nombre de una localización para su empleo como categoría de localizaciones cuando no se suministra la variable de ambiente \fBLC_ALL\fP o alguna otra más específica. .TP .B PATH Lista de nombres de directorios que \fBsh\fP(1) y muchos otros programas emplean cuando buscan un fichero cuyo nombre de camino es incompleto. Los nombres se separaran por `\fB:\fP'. (De forma análoga tenemos \fBCDPATH\fP que utilizan algunas shells para buscar el argumento de una orden de cambio de directorio de trabajo, \fBMANPATH\fP empleado por \fBman\fP(1) para buscar páginas del Manual, etc.) .TP .B PWD El directorio de trabajo en curso. Puesto por varias shells. .TP .B SHELL El nombre del intérprete de órdenes usado por el usuario cuando entra en su cuenta. .TP .B TERM El tipo de terminal para la cual se va a formatear la salida. .TP .B PAGER La utilidad preferida por el usuario para mostrar el contenido de ficheros de texto. .TP .BR EDITOR / VISUAL La utilidad preferida por el usuario para editar ficheros de texto. .PP Se pueden poner otros nombres en el entorno mediante la orden \fBexport\fP y `nombre=valor' en \fBsh\fP(1), o mediante la orden \fBsetenv\fP en \fBcsh\fP(1). También se pueden poner argumentos en el entorno cuando se llama a \fBexec\fP(2). Un programa en C puede manipular su entorno mediante las funciones \fBgetenv\fP(), \fBputenv\fP(), \fBsetenv\fP() y \fBunsetenv\fP(). 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: .LP Las variables .BR LANG ", " LANGUAGE ", " NLSPATH ", " LOCPATH ", " LC_ALL ", "LC_MESSAGES ", " etc., tienen influencia en el manejo de localizaciones. .LP .B TMPDIR tiene influencia sobre el prefijo de nombres de ficheros creados por \fBtempnam\fP() y otras rutinas, el directorio temporal utilizado por \fBsort\fP(1) y otros programas, etc. .LP .BR LD_LIBRARY_PATH ", " LD_PRELOAD y otras variables que comienzan por LD_ tienen influencia sobre el comportamiento del enlazador/cargador dinámico. .LP .B POSIXLY_CORRECT hace que ciertos programas y funciones de biblioteca sigan las prescripciones de POSIX. .LP El comportamiento de \fBmalloc\fP() viene determinado por variables cuyos nombres comienzan por MALLOC_. .LP La variable .B HOSTALIAS da el nombre de un fichero que contiene alias que utilizará la función \fBgethostbyname\fP(). .LP .BR TZ " y " TZDIR proporcionan información sobre el huso horario. .LP .B TERMCAP da información sobre cómo manejar una terminal dada (o da el nombre de un fichero que contiene esa información). .LP Etc., etc., etc. 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 .BR IFS " o " LD_LIBRARY_PATH. .PP Antes de usar una nueva variable, hay que asegurarse de no emplear un nombre utilizado por el intérprete, como: \fBMAIL\fP, \fBPS1\fP, \fBPS2\fP, \fBIFS\fP etc. .SH "VÉASE TAMBIÉN" .BR login (1), .BR sh (1), .BR bash (1), .BR csh (1), .BR tcsh (1), .BR zsh (1), .BR execve (2), .BR exec (3), .BR getenv (3), .BR putenv (3), .BR setenv (3), .BR unsetenv (3). .BR system (3).