标签:组成 界面 class 主目录 div clu out -- 本质
环境变量: 在操作系统中用来指定操作系统运行环境的一些参数. 通常具备以下特征: (1) 字符串(本质); (2) 有统一的格式: 名=值[:值]; (3) 值用来描述进程环境信息
存储形式: 命令行参数类似. char *[]数组, 数组名: environ, 内部存储字符串, NULL作为结尾
使用形式: 与命令行参数类似
加载位置: 与命令行参数类似. 位于用户区, 高于stack的起始位置
引入环境变量表: 必须声明环境变量: extern char ** environ;
按照惯例, 环境变量字符串都是name=value
这样的形式, 大多数name有大写字母加下划线组成, 一般把name的部分叫做环境变量, value的部分则是环境变量的值. 环境变量定义了进程的运行环境, 一些比较重要的环境变量的含义如下:
可执行文件的搜索路径. ls命令也是一个程序, 执行它不需要提供完整的路径名/bin/ls. 然而执行当前目录下的程序a.out却需要提供完整的路径名./a.out
, 这是因为PATH环境变量的值里包含了ls命令所在的目录/bin, 却不包含a.out所在的目录. PATH环境变量的值可以包含多个目录, 用:
隔开. 在shell中使用echo $PATH
可查看PATH的值
当前shell, 它的值通常是/bin/bash
当前终端类型, 在图形界终端界面下它的值通常是xterm, 终端类型决定了一些程序的输出显示方式, 比如图形界面可以显示汉字, 而字符终端一般不行
语言和locale, 决定了字符编码以及时间, 货币等信息的显示格式
当前用户主目录的路径, 很多程序需要在主目录下保护保存配置文件, 使得每个用户在运行该程序时都有一个自己的一套配置
#include <stdlib.h>
char *getenv(const char *name);
获取环境变量的值
返回:
成功: 返回环境变量的值
失败: NULL
int setenv(const char *name, const char *value, int overwrite);
设置环境变量的值
参数:
overwrite: 1 --> 覆盖原有环境变量; 0 --> 不覆盖
返回值: 成功 0, 失败 -1
int unsetenv(const char *name);
删除环境变量name的定义
返回值: 成功 0, 失败 -1
注意事项: name不存在仍返回0(成功), 当name命名为"ABC="时则会报错
标签:组成 界面 class 主目录 div clu out -- 本质
原文地址:https://www.cnblogs.com/hesper/p/10738797.html