天极传媒:
天极网
比特网
IT专家网
52PK游戏网
极客修
全国分站

北京上海广州深港南京福建沈阳成都杭州西安长春重庆大庆合肥惠州青岛郑州泰州厦门淄博天津无锡哈尔滨

产品
  • 网页
  • 产品
  • 图片
  • 报价
  • 下载
全高清投影机 净化器 4K电视曲面电视小家电滚筒洗衣机
您现在的位置: 天极网 > 软件频道 > 操作系统 > Linux>新闻>Linux如何处理当前运行环境的环境变量

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

天极博客2006-10-19 00:00我要吐槽

  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; 
  } 

操作系统栏目热点内容推荐
公告:天极网操作系统栏目需要大量原创稿件,稿费丰厚。投稿信箱:zhaobiao@chinabyte.com
火辣热点推荐
微软最新操作系统Windows Vista专区
最新专题推荐Windows操作系统常见驱动故障解决方法


系统进程查询系统


Windows优化专区

注册表应用专区

Linux系统应用专区



Windows变慢原因及解决方法

Windows开机关机故障分析及排除

Windows“无法打开”故障解决方法

XP中CPU占用100%原因及解决方法

原野的个人信息E-Mail  Blog  天极群乐  制作的专题
火热主题社区推荐VistaWindowsWindows XP系统优化Linux

软件频道精品推荐

更多精彩
点击体验>>

  阅读关于 Linux 操作系统 的全部文章
作者:赵彪责任编辑:原野)

请关注天极网天极新媒体 最酷科技资讯
扫码赢大奖
评论
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
热点推荐
微软Windows 10操作系统Win10系统在Win8的基础上对界面、特性以及跨平台方面做了诸多优化。[详细]
Windows 10 新视界 [进入频道][使用技巧][微博互动]
手机整机DIY企业级