.\" 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. .\" Chinese Version Copyright mhss, www.linuxforum.net, 2000 .\" .\" Modified Sun Jul 25 10:45:30 1993 by Rik Faith (faith@cs.unc.edu) .\" 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醩 Lichtmaier .\" Modified Mon Sep 21 00:00:26 1998 by Andries Brouwer (aeb@cwi.nl) .TH ENVIRON(5) Linux Programmer's Manual ENVIRON(5) .SH NAME environ - 使用者環境(變數) .SH SYNOPSIS 總覽 .ad l .nf extern char **environ; .br .fi .ad b .SH DESCRIPTION 描述 變數 environ 指向的是一個叫 'environment'(環境)的字串陣列 (這個變數必須在使用者程式中宣告,但是在使用 libc4 或 libc5 以 及使用 glibc 並且定義了 _GNU_SOURCE 的情況下 ,它是在標頭檔案 unistd.h 中宣告的)。對於一個程序,這個字串的陣列是透過開 始程序的 exec(3) 呼叫來得到,習慣上,這些字串的格式是'name=value' (名稱=值)。常用的例子是: .TP .B USER 登入使用者的名字(被一些從 BSD 派生來程式所使用)。 .TP .B LOGNAME 登入使用者的名字(被一些從 System-V 派生來程式所使用)。 .TP .B HOME 使用者的登入目錄,被login(1)按口令檔案 passwd(5) 設定。 .TP .B LANG 當不被 LC_ALL 或更特殊的環境變數所忽略的時候,是用 於地域分類的地域名。 .TP .B PATH 預先設定的目錄字首的序列,sh(1) 和許多程式可藉此查詢路徑 名不完全的檔案。字首由':'分隔。(類似的,有一些 shell 用 CDPATH 查詢位於不同目錄的命令,以及用 MANPATH 找 手冊頁等等。) .TP .B PWD 當前的工作路徑。被一些 shell 設定。 .TP .B SHELL 使用者的登入 shell 的檔名。 .TP .B TERM 用於準備輸出的終端型別。 .TP .B PAGER 使用者指定的顯示文字檔案的工具。 .TP .B EDITOR/VISUAL 使用者指定的編輯文字檔案的工具。 .PP 更多的名字可以透過和在 sh(1) 中的 export 命令和 'name=value',或 csh(1) 中 的 setenv 命令設定。引數也可以在 執行 exec(2) 的時候被放置在環境中。一個 C 程式可以使用函式 .BR getenv(3) 、 .BR putenv(3) 、 .BR setenv(3) 和 .BR unsetenv(3) 來操縱自身的環境。 注意許多程式和庫例程的行為受特定的環境變數的存在和值的影響。 隨便的蒐集一下就有: .LP 環境變數 LANG、LANGUAGE、NLSPATH、LOCPATH、LC_ALL、 LC_MESSAGES 等影響地域的處理。 .LP TMPDIR 影響 tmpnam(3) 生成名字的路徑名字首和其他一些例程, sort(1) 和其他程式用的臨時檔案目錄等等。 .LP LD_LIBRARY_PATH、LD_PRELOAD 和其他 LD_* 變數影響動態 (裝載器/聯結器)的行為。 .LP POSIXLY_CORRECT 使特定的程式和庫例程遵循 POSIX 規定。 .LP MALLOC_* 變數影響 malloc(3) 的行為。 .LP HOSTALIASES 變數給出包含 gethostbyname(3) 用的別名的檔案的 檔名。 .LP TZ 和 TZDIR 給出時區資訊。 .LP TERMCAP 給出給定終端的視窗大小(或給出包含這種資訊的檔案的 檔名)。 .LP 等等,還有很多。 這裡有一個明顯的安全風險。不止一個系統命令曾經被一個使用了一 個不尋常的 .BR IFS " 或 " LD_LIBRARY_PATH 變數值的使用者誘入騙局中。 .SH SEE ALSO 又見 .BR login(1), .BR sh(1), .BR bash(1), .BR csh(1), .BR tcsh(1), .BR execve(2), .BR exec(3), .BR getenv(3), .BR putenv(3), .BR setenv(3), .BR unsetenv(3). .SH "[中文版維護人]" .B mhss .SH "[中文版最新更新]" .B 2000/11/26 .SH "《中國linux論壇man手冊頁翻譯計劃》:" .BI http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR