Linux 下 操作进程环境变量的函数和指令

来源:互联网 发布:南风知我意书包网全文 编辑:程序博客网 时间:2024/06/03 17:31

指令

  用export 指令可导入环境变量,那么当bash导入后,通过该bash执行的子进程都有该环境变量,因为环境变量是可以被继承的。用法 export KEY=VALUE , key 该环境变量的名字,value 环境变量的值。

函数

   putenv/setenv , 都可以设置环境变量,它们的区别是:
  setenv设置环境变量的时候,直接拷贝一份参数 string 字符串,并把拷贝后的字符串的地址放置到环境变量的数组中。
  putenv , 并不做拷贝直接把你给的参数,放到环境变量的数组中。如果该参数字符串是在栈上,那么当栈被释放后,该环境变量就被析构了,就找不到该环境变量了。所以用putenv 的字符串不应该在栈上开辟。

当环境变量遇上exec族函数

  当它们遇到exec族函数的时候,无论 setenv/putenv , 它们设置的环境变量都会完好无缺的被留下,即使putenv 设置的环境变量在栈上,只要该字符串没被释放,调用exec族函数,该环境变量一直存在进程中。
  exec族函数,虽然会替换掉进程的代码段和数据,但是不会替换掉环境变量。