c++ - C 设置环境变体

标签 c++ c environment-variables

如何使用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函数,考虑到 setenvputenv 无论如何都是不可移植的。

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

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

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

关于c++ - C 设置环境变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561483/

相关文章:

c++ - 如何使用STL中的容器读取文件

c++ - 如何确保一次只有一个进程访问共享内存

c++ - 在 g++ 中使用 __attribute__ 的不平衡括号

c - Hello World 驱动程序无法正确编译

python - os.environ.get() 为 Heroku 环境变量返回 None

c++ - Win32 SendInput mousemove滞后和卡住

c++ - 系统编程——Fork()方法

c - 在Linux中,我们如何使用系统调用为我们输入的每个字符(密码提示)显示*?

loops - 在 Makefile 中循环 ifndef/endif 结构

javascript - 找不到 "process.env.NODE_ENV"