Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57995
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 282
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-20 17:23
个人简介

我的博客园;http://www.cnblogs.com/geekpaul/

文章分类

全部博文(20)

文章存档

2015年(7)

2014年(13)

我的朋友

分类: LINUX

2015-02-28 16:00:43

1 在终端可以通过env、set命令查看当前的环境变量
2 通过main函数中的第三个参数可以得到当前进程的环境变量列表
int main(int argc , char *argv[] , char *env[]);
其中argv和env是一个指针数组,数组的最后一个元素为NULL
3 打印当前进程的环境变量

点击(此处)折叠或打开

  1. int main(int argc , char *argv[] , char *env[]){
  2.   char **p = env;
  3.   while(*p){
  4.     printf("%s\n",*env);
  5.     env++;
  6.   }
  7. }
4 getenv获得指定的环境变量
char * getenv("环境变量名")

点击(此处)折叠或打开

  1. int main(){
  2.   char * p = getenv("PATH");
  3.   if(p){
  4.     printf("%s",p);
  5.   }
  6.   else{
  7.     return;
  8.   }  
  9. }
5 putenv设置环境变量

点击(此处)折叠或打开

  1. int main(int argc , char ** argv , char **env){
  2.   printf("%s\n",getenv("PATH"));
  3.   putenv("PATH=/home/hello");
  4.   printf("%s\n",getenv("PATH"));
  5. }
输出结果:
  1. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  2. /home/hello
6 setenv设置环境变量
首先要说明的是,通过此函数并不能添加或修改 shell 进程的环境变量,或者说通过setenv函数设置的环境变量只在本进程,而且是本次执行中有效。如果在某一次运行程序时执行了setenv函数,进程终止后再次运行该程序,上次的设置是无效的,上次设置的环境变量是不能读到的
setenv("变量名","新变量值","是否重写")

点击(此处)折叠或打开

  1. int main(int argc , char ** argv , char **env){
  2.   printf("%s\n",getenv("PATH"));
  3.   int res = setenv("PATH","/home/hello",1); //第三个参数为1代表重写
  4.   if(res == -1)
  5.     return;
  6.   printf("%s\n",getenv("PATH"));
  7. }
输出结果:
  1. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  2. /home/hello
若第三个参数为0,即环境变量已经存在,则并不改变它的值
输出结果:
  1. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  2. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
7 unsetenv删除某个环境变量
unsetenv("环境变量名")

点击(此处)折叠或打开

  1. int main(int argc , char ** argv , char **env){
  2.         printf("%s\n",getenv("PATH"));
  3.         unsetenv("PATH");
  4.         printf("%s\n",getenv("PATH"));
  5. }
输出结果:
  1. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PATH被删除,所以只输出一行














阅读(734) | 评论(0) | 转发(0) |
0

上一篇:AutoResetEvent和ManualResetEvent

下一篇:没有了

给主人留下些什么吧!~~