ENVIRON(5)(Linux) | ENVIRON(5) | ENVIRON(5)(Linux) |
NAME
environ - 使用者環境(變數)
SYNOPSIS 總覽
extern char **environ;
DESCRIPTION 描述
變數 environ 指向的是一個叫 'environment'(環境)的字串陣列 (這個變數必須在使用者程式中宣告,但是在使用 libc4 或 libc5 以 及使用 glibc 並且定義了 _GNU_SOURCE 的情況下 ,它是在標頭檔案 unistd.h 中宣告的)。對於一個程序,這個字串的陣列是透過開 始程序的 exec(3) 呼叫來得到,習慣上,這些字串的格式是'name=value' (名稱=值)。常用的例子是:
- 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).
[中文版維護人]
mhss <jijingzhisheng@up369.com>
[中文版最新更新]
2000/11/26
《中國linux論壇man手冊頁翻譯計劃》:
跋
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
Programmer's | Manual |