Linux 下 操作进程环境变量的函数和指令
指令
用export 指令可导入环境变量,那么当bash导入后,通过该bash执行的子进程都有该环境变量,因为环境变量是可以被继承的。用法 export KEY=VALUE , key 该环境变量的名字,value 环境变量的值。
函数
putenv/setenv , 都可以设置环境变量,它们的区别是:
setenv设置环境变量的时候,直接拷贝一份参数 string 字符串,并把拷贝后的字符串的地址放置到环境变量的数组中。
putenv , 并不做拷贝直接把你给的参数,放到环境变量的数组中。如果该参数字符串是在栈上,那么当栈被释放后,该环境变量就被析构了,就找不到该环境变量了。所以用putenv 的字符串不应该在栈上开辟。
当环境变量遇上exec族函数
当它们遇到exec族函数的时候,无论 setenv/putenv , 它们设置的环境变量都会完好无缺的被留下,即使putenv 设置的环境变量在栈上,只要该字符串没被释放,调用exec族函数,该环境变量一直存在进程中。
exec族函数,虽然会替换掉进程的代码段和数据,但是不会替换掉环境变量。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: 给两个文件,分别有100亿个URL,我们只有1G内存,如何找到两个文件交集?分别给出精确算法和近似算法。