如何使用C/C++设置环境变量?
我用过
putenv()
但是在我运行代码之后,环境变量并没有改变任何东西。
代码:
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char a[128];
char b[256];
char all[512];
cin>>a;
cin>>b;
cout<<'\n';
cout<<a<<'\n';
cout<<b<<'\n';
strcpy(all,a);
strcat(all,"=");
strcat(all,b);
cout<<all<<'\n';
cout<<putenv(all);
}
我之前试过函数“setenv()”但是错误信息:
错误:“setenv”未在此范围内声明
我的操作系统是 Windows 7。
IDE 代码:: block
最佳答案
I tried the function "setenv()" before but the error message:
error: 'setenv' was not declared in this scope
setenv
函数在 stdlib.h
header 中声明。您需要包含此 header 才能调用该函数:
#include <stdlib.h>
如果您绝对必须使用这些功能之一,我建议您优先使用 setenv
而不是 putenv
。 Jonathan Leffler 更详细地讨论了基本原理 here .
我个人更喜欢调用 Win32 SetEnvironmentVariable
函数,考虑到 setenv
和 putenv
无论如何都是不可移植的。
但我不太确定为什么您认为首先需要修改环境。这个问题没有解释您要解决的问题,也没有说明您期望改变什么。
请记住,这两个函数只会更改调用进程的环境。它们对全局系统环境没有任何影响。
出于测试目的,您需要设置您选择的环境变量,然后使用类似getenv
或GetEnvironmentVariable
的变量。检索并打印进程的当前环境变量,以确保您的设置正确。
关于c++ - C 设置环境变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561483/