-
直接将环境变量转换为模块结构图的方法 - 数据流图
资源介绍
7.9 环境变量
如同前述,环境字符串的形式是:
n a m e = v a l u e
U N I X内核并不关心这种字符串的意义,它们的解释完全取决于各个应用程序。例如, s h e l l使
用了大量的环境变量。其中某一些在登录时自动设置(如 H O M E,U S E R等),有些则由用户设
置。我们通常在一个 s h e l l起动文件中设置环境变量以控制 s h e l l的动作。例如,若设置了环境变
量M A I L PAT H,则它告诉Bourne shell和K o r n S h e l l到哪里去查看邮件。
ANSI C定义了一个函数g e t e n v,可以用其取环境变量值,但是该标准又称环境的内容是由
实现定义的。
#include
char *getenv(const char *n a m e) ;
返回:指向与 n a m e关联的v a l u e的指针,若未找到则为N U L L
注意,此函数返回一个指针,它指向 n a m e = v a l u e字符串中的v a l u e。我们应当使用g e t e n v从环境
中取一个环境变量的值,而不是直接存取 e n v i r o n。
P O S I X . 1和X P G 3定义了某些环境变量。表 7 - 1列出了由这两个标准定义并受到 S V R 4和
4 . 3 + B S D支持的环境变量。S V R 4和4 . 3 + B S D还使用了很多依赖于实现的环境变量。
FIPS 151-1要求登录s h e l l必须要定义环境变量H O M E和L O G N A M E。
表7-1 环境变量
变 量
标 准 实 现
说 明
P O S I X . 1 X P G 3 S V R 4 4 . 3 + B S D
H O M E • • • • 起始目录
L A N G • • • 本地名
L C _ A L L • • • 本地名
L C _ C O L L A T E • • • 本地排序名
L C _ C T Y P E • • • 本地字符分类名
L C _ M O N E T A R Y • • • 本地货币编辑名
L C _ N U M E R I C • • • 本地数字编辑名
L C _ T I M E • • • 本地日期/时间格式名
L O G N A M E • • • • 登录名
N L S P A T H • • 消息类模板序列
P A T H • • • • 搜索可执行文件的路径前缀表
T E R M • • • • 终端类型
T Z • • • • 时区信息
1 3 0 U N I X环境高级编程