学习网考试学习资料

Gzu521.com

Linux如何处理当前运行环境的环境变量

LINUX教程   点击:次   发布时间:2006-10-19   【字体: 】   来源:Gzu521.com
GZU521.COM学习网
gnu/LINUX下面每个程序运行都有一个所谓的运行环境,这里的环境实际上就是一组变量的定义。所有的变量和他们的值都是字符串形式表达的。通过转换,通常变量名字都是用大写字符表达。  

  对于环境变量大家都不陌生,例如,我们都很熟悉的home这个环境变量,这个变量指示的当前用户的个人用户目录的路径。又例如,path这个环境变量,它指示出当前linux系统搜索的的执行文件的路径列表。  

  对于我们在linux下常用的bash这个shell程序,它有自己的一套管理环境变量的方法。例如,通过$name来访问相应的环境变量,通过export来设置环境变量,下面是一个实例:  


[hwang@langchao linuxprogram]$ echo $home  
  /home/hwang  
  [hwang@langchao linuxprogram]$ export myname="luster"  
  [hwang@langchao linuxprogram]$ echo $myname  
  luster  
  [hwang@langchao linuxprogram]$  

  而在我们的应用程序里面,如果需要访问一个环境变量,我们可以通过getenv()这个函数来实现,getenv这个函数在这个头文件中声明。这个函数的输入参数是需要访问的变量名字,得到的返回值是一个字符串,如果所访问的环境变量没有设置,则会返回null。如果需要在程序里面设置某个环境变量,则可以使用setenv这个函数,如果是要清除某个特定的环境变量,则使用unsetenv这个函数。它们的函数原型如下:  


#include   
   char *getenv(const char *name);  
   int setenv(const char *name, const char *value, int overwrite);  
   void unsetenv(const char *name);  

  值得一提的是,gnu c函数库里面有一个特殊的全局的变量,名字叫做environ,这个变量的类型是char **,它所指向的是所有的环境变量的一个列表,最后是以null结尾。每个字符串都是“value=value”这样的形式。例如下面的程序可以打印出当前运行环境里面的所有的环境变量:  

  

#include   
  extern char**environ;  
  int main ()  
  {  
   char**var;  
   for (var =environ;*var !=null;++var)  
   printf (“%s   
   “,*var);  
   return 0;  
  }  
    

  注意,如果你需要修改某个环境变量,不要直接修改environ这个变量,而应该使用setenv或者unsetenv这样的管理函数来做这件事情。  

  一般来说,当一个程序启动的时候,它就会拷贝一份启动它的“父”程序所拥有的环境变量。环境变量是gnu程序常用来配置某个应用程序的行为的一个方法,例如,通过环境变量来设置http代理服务器的地址和端口号等等。下面是一段代码的演示:  

    

 #include   
  #include   
  int main ()  
  {  
   char *server_name =getenv (“server_name ”);  
   if (server_name ==null)  
   server_name =“server.my-company.com ”;  
   printf (“accessing server %s   
   ”,server_name);  
    
   return 0;  
  }  

责任编辑:gzu521

电脑课堂分类
Windows 2000教程
Windows XP教程
Windows 2003教程
Windows Vista教程
LINUX教程
软件教学
办公软件
硬件DIY
分类推荐信息
更多...
大类最新文章
更多...