系统环境变量相关的访问接口
关于什么是环境变量,以及它的作用。笔者就不解释了,自行百度吧,下面总结了有关环境变量的一些命令以及函数接口。
控制台下操作环境变量相关命令
printenv
命令:打印所有的环境变量。env
命令:在修改某些环境变量后执行指定的命令。- 格式:env [OPTION]… [-] [NAME=VALUE]… [COMMAND [ARG]…]
[]
表示可选的选项。所以可以忽略。env PATH=/usr/bin perl --version
export
命令:修改、添加环境变量。- eg:
export PATH=$PATH:mypath
。
- eg:
- 使用
echo $环境变量
来打印单个环境变量。- eg:
echo $PATH
- eg:
环境变量相关的用户空间接口函数
char *getenv(const char *name)
- 描述:获取名称为
name
环境变量的值。 - name:指定要获取的环境变量。
- return:返回要获取环境变量的值。如果没有定义,则返回NULL.
- 描述:获取名称为
int putenv(char *string)
- 描述:添加或者删除指定的环境变量。
- string:如果string的格式为
name=value
表示添加名称为name
的环境变量。否则删除所指定的环境变量。- 注意:这样设置的环境变量保存在string实体中。如果动态的改变此实体,环境变量也动态的改变。同时需要注意环境变量的作用范围。
- return:如果成功返回零。
int setenv(const char *name, const char *value, int overwrite)
- 描述:添加或者修改指定的环境变量。
- name:要添加或者修改的环境变量。
- value:环境变量的内容。
- overwrite:如果不为零,当name在环境变量中已经存在时,会替换。否则不替换。
- return:如果成功返回零。
- 注意:不同于
putenv()
,它设置的环境变量直接保存在了环境变量中。所以修改value实体也不会发生变化。
int unsetenv(const char *name)
- 描述:删除指定的环境变量。
- return:成功返回0.
int clearenv (void)
- 描述:删除所有的环境变量。
- return:成功返回0.
char **__environ
全局变量- 此全局变量中保存这所有的环境变量。它是指向一个字符串数组。每个字符串的格式为
name=value
.最后一个字符串为NULL. - 需要包含头文件
unstd.h
- 下面是通过它打印所有的环境变量
for(int i = 0; __environ[i]!=NULL; i++){ printf("%2d.%s\n",i,__environ[i]); }
- 此全局变量中保存这所有的环境变量。它是指向一个字符串数组。每个字符串的格式为
linux系统环境变量
可以使用printenv`命令查看自己系统下相关环境变量的值。下面是常见环境变量的说明。
HOME
:用户的home目录路径。也就是默认工作路径。LOGNAME
:用户登录名。PATH
:全局路径。系统除了在当前目录下面寻找需要的文件外,还会到PATH中指定的路径去找。TERM
:这指定了接收程序输出终端的类型。在图形界终端界面下它的值通常是xterm。LANG
:设置语言、字符编码等本地默认属性。TZ
:时间相关的时区设置。
关于技术交流
此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。