我将在这里做一个粗略的猜测,但这些函数似乎不起作用的正常原因不是因为它们不起作用,而是因为用户并不真正了解环境变量是如何工作的.例如,如果我有这个程序:
int main(int argc, char **argv)
{
putenv("SomeVariable=SomeValue");
return 0;
}
然后我从shell中运行它,它不会修改shell的环境——子进程无法做到这一点.这就是为什么修改环境的shell命令是内置的,以及为什么您需要创建一个包含要添加到shell中的变量设置的脚本,而不是简单地运行它.