Linux中与环境变量相关的函数

王朝学院·作者佚名  2016-05-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

linux中与环境变量相关的函数 1、在终端可以通过env、set命令查看当前的环境变量

2、通过main函数中的第三个参数可以得到当前进程的环境变量列表

int main(int argc , char *argv[] , char *env[]);

其中argv和env是一个指针数组,数组的最后一个元素为NULL

3、打印当前进程的环境变量

int main(int argc , char *argv[] , char *env[]){char **p = env;while(*p){PRintf("%s\n",*env);env++;}}

4、getenv获得指定的环境变量

char * getenv("环境变量名")

int main(){char * p = getenv("PATH");if(p){printf("%s",p);}else{return;}}

5、putenv设置环境变量

int main(int argc , char ** argv , char **env){printf("%s\n",getenv("PATH"));putenv("PATH=/home/hello");printf("%s\n",getenv("PATH"));}

输出结果:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin/home/hello

6、setenv设置环境变量

首先要说明的是,通过此函数并不能添加或修改 shell 进程的环境变量,或者说通过setenv函数设置的环境变量只在本进程,而且是本次执行中有效。如果在某一次运行程序时执行了setenv函数,进程终止后再次运行该程序,上次的设置是无效的,上次设置的环境变量是不能读到的

setenv("变量名","新变量值","是否重写")

int main(int argc , char ** argv , char **env){printf("%s\n",getenv("PATH"));int res = setenv("PATH","/home/hello",1); //第三个参数为1代表重写if(res == -1)return;printf("%s\n",getenv("PATH"));}

输出结果:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

/home/hello

若第三个参数为0,即环境变量已经存在,则并不改变它的值

输出结果:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

7、unsetenv删除某个环境变量

unsetenv("环境变量名")

int main(int argc , char ** argv , char **env){ printf("%s\n",getenv("PATH")); unsetenv("PATH"); printf("%s\n",getenv("PATH"));}

输出结果:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PATH被删除,所以只输出一行

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航