我想尝试在Linux和Windows中获取环境变量,所有的文档都指向使用std::getenv,但是当我在Windows 10上使用Visual Studio 2019进行编译时,出现了以下错误:
error C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS
这是函数:
std::string Utils::getEnvVar(std::string const& key)
{
char* val = std::getenv(key.c_str());
return val == NULL ? std::string("") : std::string(val);
}
我只找到了这个线程,但我不明白如何解决跨平台的问题。
getenv
,那么你应该能够找到更多关于这个“问题”以及可能的解决方案的结果。作为一个快速的解决办法,错误信息本身就包含了如何禁用警告的提示。 - Some programmer dudeGetEnvironmentVariableW
函数。创建第三个函数,将Windows上的GetEnvironmentVariableW
和Linux上的getenv
封装成一个通用接口。 - Aykhan Hagverdili