首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用C++设置环境变量

用C++设置环境变量
EN

Stack Overflow用户
提问于 2010-08-05 23:57:26
回答 2查看 72.2K关注 0票数 41

有没有办法在Linux中使用C来设置环境变量?

我试过setenv()putenv(),但它们似乎对我不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-06 00:02:58

我将在这里胡乱猜测,但这些函数看起来不起作用的正常原因并不是因为它们不起作用,而是因为用户并不真正理解环境变量是如何工作的。例如,如果我有这样的程序:

代码语言:javascript
复制
int main(int argc, char **argv)
{
  putenv("SomeVariable=SomeValue");
  return 0;
}

然后我从shell运行它,它不会修改shell的环境--子进程没有办法这样做。这就是为什么修改环境的shell命令是内置的,以及为什么您需要source一个包含要添加到shell中的变量设置的脚本,而不是简单地运行它。

票数 60
EN

Stack Overflow用户

发布于 2010-08-06 00:01:23

环境块是进程本地的,并复制到子进程。因此,如果更改变量,新值只会影响更改后产生的进程和子进程。可以肯定的是,它不会改变您启动的shell。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3416638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档