环境变量

Posted hesper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环境变量相关的知识,希望对你有一定的参考价值。

环境变量

环境变量: 在操作系统中用来指定操作系统运行环境的一些参数. 通常具备以下特征: (1) 字符串(本质); (2) 有统一的格式: 名=值[:值]; (3) 值用来描述进程环境信息

存储形式: 命令行参数类似. char *[]数组, 数组名: environ, 内部存储字符串, NULL作为结尾

使用形式: 与命令行参数类似

加载位置: 与命令行参数类似. 位于用户区, 高于stack的起始位置

引入环境变量表: 必须声明环境变量: extern char ** environ;

常见环境变量

按照惯例, 环境变量字符串都是name=value这样的形式, 大多数name有大写字母加下划线组成, 一般把name的部分叫做环境变量, value的部分则是环境变量的值. 环境变量定义了进程的运行环境, 一些比较重要的环境变量的含义如下:

PATH

可执行文件的搜索路径. ls命令也是一个程序, 执行它不需要提供完整的路径名/bin/ls. 然而执行当前目录下的程序a.out却需要提供完整的路径名./a.out, 这是因为PATH环境变量的值里包含了ls命令所在的目录/bin, 却不包含a.out所在的目录. PATH环境变量的值可以包含多个目录, 用:隔开. 在shell中使用echo $PATH可查看PATH的值

SHELL

当前shell, 它的值通常是/bin/bash

TERM

当前终端类型, 在图形界终端界面下它的值通常是xterm, 终端类型决定了一些程序的输出显示方式, 比如图形界面可以显示汉字, 而字符终端一般不行

LANG

语言和locale, 决定了字符编码以及时间, 货币等信息的显示格式

HOME

当前用户主目录的路径, 很多程序需要在主目录下保护保存配置文件, 使得每个用户在运行该程序时都有一个自己的一套配置

环境变量相关函数

#include <stdlib.h>

getenv

char *getenv(const char *name);
获取环境变量的值
返回:
  成功: 返回环境变量的值
  失败: NULL

setenv

int setenv(const char *name, const char *value, int overwrite);
设置环境变量的值
参数:
  overwrite: 1 --> 覆盖原有环境变量; 0 --> 不覆盖
返回值: 成功 0, 失败 -1

unsetenv

int unsetenv(const char *name);
删除环境变量name的定义
返回值: 成功 0, 失败 -1
注意事项: name不存在仍返回0(成功), 当name命名为"ABC="时则会报错

以上是关于环境变量的主要内容,如果未能解决你的问题,请参考以下文章

append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]

Linux bash基础特性二

npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段

使用片段时 Intellij 无法正确识别 Thymeleaf 模型变量

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

Bash的变量类型