一尘不染

在C中设置环境变量

linux

有没有一种方法可以在Linux中使用C设置环境变量?

我尝试了setenv()putenv(),但是它们似乎并没有为我工作。


阅读 286

收藏
2020-06-02

共1个答案

一尘不染

我将在这里做出一个疯狂的猜测,但是这些功能似乎不起作用的正常原因不是因为它们不起作用,而是因为用户并不真正了解环境变量的工作原理。例如,如果我有此程序:

int main(int argc, char **argv)
{
  putenv("SomeVariable=SomeValue");
  return 0;
}

然后我从外壳程序运行它,它不会修改外壳程序的环境-
子进程无法做到这一点。这就是为什么内置可修改环境的shell命令的原因,以及为什么需要source一个脚本,该脚本包含要添加到Shell中的变量设置,而不是简单地运行它。

2020-06-02