ENVIRON(5)(Linux)

NAME
environ - 用户环境(变量)

SYNOPSIS 总览
extern char **environ;

DESCRIPTION 描述
变量 environ 指向的是一个叫 'environment'(环境)的字符串数组 (这个变量必须在用户程序中声明，但是在使用 libc4 或 libc5 以 及使用 glibc 并且定义了 _GNU_SOURCE 的情况下 ，它是在头文件 unistd.h 中声明的)。对于一个进程，这个字符串的数组是通过开 始进程的 exec(3) 调用来得到，习惯上，这些字符串的格式是

USER
    登录用户的名字(被一些从 BSD 派生来程序所使用)。

LOGNAME
    登录用户的名字(被一些从 System-V 派生来程序所使用)。

HOME
    用户的登录目录，被login(1)按口令文件 passwd(5) 设置。

LANG
    当不被 LC_ALL 或更特殊的环境变量所忽略的时候，是用 于地域分类的地域名。

PATH
    预先设定的目录前缀的序列，sh(1) 和许多程序可借此查找路径 名不完全的文件。前缀由':'分隔。(类似的，有一些 shell 用 CDPATH 查找位于不同目录的命令，以及用 MANPATH 找 手册页等等。)

PWD 当前的工作路径。被一些 shell 设置。

SHELL
    用户的登录 shell 的文件名。

TERM
    用于准备输出的终端类型。

PAGER
    用户指定的显示文本文件的工具。

EDITOR/VISUAL
    用户指定的编辑文本文件的工具。

更多的名字可以通过和在 sh(1) 中的 export 命令和 'name=value'，或 csh(1) 中 的 setenv 命令设置。参数也可以在 执行 exec(2) 的时候被放置在环境中。一个 C 程序可以使用函数 getenv(3)、 putenv(3)、 setenv(3) 和 unsetenv(3) 来操纵自身的环境。 注意许多程序和库例程的行为受特定的环境变量的存在和值的影响。 随便的搜集一下就有：

环境变量 LANG、LANGUAGE、NLSPATH、LOCPATH、LC_ALL、 LC_MESSAGES 等影响地域的处理。

TMPDIR 影响 tmpnam(3) 生成名字的路径名前缀和其他一些例程， sort(1) 和其他程序用的临时文件目录等等。

LD_LIBRARY_PATH、LD_PRELOAD 和其他 LD_* 变量影响动态 (装载器/连接器)的行为。

POSIXLY_CORRECT 使特定的程序和库例程遵循 POSIX 规定。

MALLOC_* 变量影响 malloc(3) 的行为。

HOSTALIASES 变量给出包含 gethostbyname(3) 用的别名的文件的 文件名。

TZ 和 TZDIR 给出时区信息。

TERMCAP 给出给定终端的窗口大小(或给出包含这种信息的文件的 文件名)。

等等，还有很多。 这里有一个明显的安全风险。不止一个系统命令曾经被一个使用了一 个不寻常的 IFS 或 LD_LIBRARY_PATH 变量值的用户诱入骗局中。

SEE ALSO 又见
login(1), sh(1), bash(1), csh(1), tcsh(1), execve(2), exec(3), getenv(3), putenv(3), setenv(3), unsetenv(3).

TRANSBY
LinuxForum.Net CMPP 中文手册页计划 http://cmpp.linuxforum.net

* Sun Nov 26 2000 mhss <mhss0@163.com>
- 初始版本