0

如何使用 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 代码::块

4

2 回答 2

2

我之前尝试过函数“setenv()”,但错误消息:

error: 'setenv' was not declared in this scope

setenv函数在stdlib.h标头中声明。您需要包含此标头才能调用该函数:

#include <stdlib.h>

如果您绝对必须使用这些功能之一,我建议您setenv优先使用putenv. Jonathan Leffler 在这里更详细地讨论了基本原理。

我个人更喜欢调用 Win32SetEnvironmentVariable函数,考虑到两者setenv都是putenv不可移植的。

但我不太确定为什么您认为首先需要修改环境。该问题没有说明您要解决什么问题,也没有说明您希望改变什么。

请记住,这两个函数都只会改变调用进程的环境。它们对全局系统环境没有任何影响。

出于测试目的,您需要设置您选择的环境变量,然后使用类似getenvorGetEnvironmentVariable来检索和打印进程的当前环境变量,以确保您的设置正确。

于 2013-07-10T04:09:34.763 回答
1

putenv() 只影响当前进程。如果您在运行代码后检查它们,环境变量自然会保持不变。

于 2013-07-10T04:18:25.913 回答