有没有办法在Linux中使用C来设置环境变量?
我试过setenv()
和putenv()
,但它们似乎对我不起作用。
发布于 2010-08-06 00:02:58
我将在这里胡乱猜测,但这些函数看起来不起作用的正常原因并不是因为它们不起作用,而是因为用户并不真正理解环境变量是如何工作的。例如,如果我有这样的程序:
int main(int argc, char **argv)
{
putenv("SomeVariable=SomeValue");
return 0;
}
然后我从shell运行它,它不会修改shell的环境--子进程没有办法这样做。这就是为什么修改环境的shell命令是内置的,以及为什么您需要source
一个包含要添加到shell中的变量设置的脚本,而不是简单地运行它。
发布于 2010-08-06 00:01:23
环境块是进程本地的,并复制到子进程。因此,如果更改变量,新值只会影响更改后产生的进程和子进程。可以肯定的是,它不会改变您启动的shell。
https://stackoverflow.com/questions/3416638
复制相似问题