Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ENVIRON(5)		   Linux Programmer's Manual		    ENVIRON(5)

NAME
       environ - user environment

SYNOPSIS
       extern char **environ;

DESCRIPTION
       The variable environ points to an array of strings called the `environ-
       ment'.  (This variable must be declared in the user program, but	is de-
       clared  in  the header file unistd.h in case the	header files came from
       libc4 or	libc5, and in case they	came from glibc	 and  _GNU_SOURCE  was
       defined.)   This	 array	of strings is made available to	the process by
       the exec(3) call	that started the process.  By convention these strings
       have the	form `name=value'.  Common examples are:

       USER   The  name	 of  the logged-in user	(used by some BSD-derived pro-
	      grams).

       LOGNAME
	      The name of the logged-in	user (used by  some  System-V  derived
	      programs).

       HOME   A	user's login directory,	set by login(1)	from the password file
	      passwd(5).

       LANG   The name of a locale to use for locale categories	when not over-
	      ridden  by  LC_ALL  or  more specific environment	variables like
	      LC_COLLATE,  LC_CTYPE,  LC_MESSAGES,  LC_MONETARY,   LC_NUMERIC,
	      LC_TIME, cf.  locale(5).

       PATH   The  sequence  of	 directory  prefixes that sh(1)	and many other
	      programs apply in	searching for a	file known  by	an  incomplete
	      path  name.   The	prefixes are separated by `:'.	(Similarly one
	      has CDPATH used by some shells to	find the target	 of  a	change
	      directory	 command, MANPATH used by man(1) to find manual	pages,
	      etc.)

       PWD    The current working directory. Set by some shells.

       SHELL  The file name of the user's login	shell.

       TERM   The terminal type	for which output is to be prepared.

       PAGER  The user's preferred utility to display text files.

       EDITOR/VISUAL
	      The user's preferred utility to edit text	files.

       BROWSER
	      The user's preferred utility to browse URLs. Sequence of	colon-
	      separated		   browser	      commands.		   See
	      http://www.tuxedo.org/~esr/BROWSER/ .

       Further names may be placed in the environment by  the  export  command
       and  `name=value' in sh(1), or by the setenv command if you use csh(1).
       Arguments may also be placed in the environment	at  the	 point	of  an
       exec(3).	  A  C	program	can manipulate its environment using the func-
       tions getenv(3),	putenv(3), setenv(3), and unsetenv(3).

       Note that the behaviour of many programs	and library routines is	influ-
       enced  by  the  presence	 or value of certain environment variables.  A
       random collection:

       The variables LANG, LANGUAGE, NLSPATH,  LOCPATH,	 LC_ALL,  LC_MESSAGES,
       etc. influence locale handling, cf.  locale(5).

       TMPDIR  influences  the	path  prefix of	names created by tmpnam(3) and
       other routines, the temporary directory used by sort(1) and other  pro-
       grams, etc.

       LD_LIBRARY_PATH,	 LD_PRELOAD and	other LD_* variables influence the be-
       haviour of the dynamic loader/linker.

       POSIXLY_CORRECT makes certain programs and library routines follow  the
       prescriptions of	POSIX.

       The behaviour of	malloc(3) is influenced	by MALLOC_* variables.

       The variable HOSTALIASES	gives the name of a file containing aliases to
       be used with gethostbyname(3).

       TZ and TZDIR give time zone information used by	tzset(3)  and  through
       that by functions like ctime(), localtime(), mktime(), strftime().  See
       also tzselect(1).

       TERMCAP gives information on how	to address a given terminal (or	 gives
       the name	of a file containing such information).

       COLUMNS	and  LINES  tell  applications about the window	size, possibly
       overriding the actual size.

       PRINTER or LPDEST may specify the desired printer to use. See lpr(1).

       Etc.

BUGS
       Clearly there is	a security risk	here. Many a system command  has  been
       tricked into mischief by	a user who specified unusual values for	IFS or
       LD_LIBRARY_PATH.

       There is	also the risk of name space pollution.	Programs like make and
       autoconf	allow overriding of default utility names from the environment
       with similarly named variables in all caps.  Thus one uses CC to	select
       the  desired  C	compiler (and similarly	MAKE, AR, AS, FC, LD, LEX, RM,
       YACC, etc.).  However, in some traditional  uses	 such  an  environment
       variable	 gives	options	 for the program instead of a pathname.	 Thus,
       one has MORE, LESS, and GZIP.  Such usage is considered	mistaken,  and
       to  be avoided in new programs. The authors of gzip should consider re-
       naming their option to GZIP_OPT.

SEE ALSO
       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				  2001-12-14			    ENVIRON(5)

NAME | SYNOPSIS | DESCRIPTION | BUGS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=environ&sektion=5&manpath=Red+Hat+9>

home | help