我正在尝试使用setenv函数设置env变量。但不幸的是,它并没有像预期的那样发挥作用。
int setNewEnvVariable(const std::string *varName, const std::string *value)
{
setenv(varName->c_str(), value->c_str(), true);
return this->VAR_ADDED;
}
它似乎只在它想要的时候起作用。有时我可以更改(替换)变量,但它不会做任何更改。我根本无法添加新变量。我试过用putenv。但它没有帮助
我发现它什么时候没有改变现有的变量。当我尝试添加新变量时不存在。在此之后它不会添加新变量,但此外它并没有改变现有变量,但在尝试添加新变量之前,一切都有效。
我的意思是在尝试添加新的var之前它接受改变现有的例如PATH,但在传递不存在的变量如PATH2323之后,它停止接受改变现有的变量。
编辑
我已经检查了返回值它是0而errno也是0 ........它有什么问题?