得到环境变量,得到NULL
Get environment variable in I get NULL
我正在尝试获取环境变量的内容,如果它存在
#define MY_VAR "MY_ENV_VAR"
//function
#pragma warning(disable:4996)
char const* temp = getenv(MY_VAR);
if(temp != NULL)
{
string_variable = std::string(temp);
}
//code
#pragma warning(default:4996)
我以为我在做正确的事情,但是一旦我创建了环境变量并给了它默认值,我希望temp不是NULL…我是不是期望太高了?
我在调试,我看到:
temp 0x00000 <Bad Ptr>
! CXX0030 Error: Expression cannot be evaluated
在命令行中运行"set"会显示环境变量(顺便说一下,是System)。
I am in Windows…
注意:我使用了pragma警告,因为我读到getenv已经被弃用了。
请给我一个想法,为什么我没有得到一个有效值。谢谢你。
您的代码没问题。添加/删除环境变量后,必须重新启动Visual Studio或/and计算机。
您发布的代码应该工作。反正对我来说是这样。也许你没有得到正确的env变量,或者Visual Studio环境没有它。试试这个:
std::string string_variable;
#define MY_VAR "PATH"
int main()
{
char const* temp = getenv(MY_VAR);
if(temp != NULL)
{
string_variable = std::string(temp);
}
}
更好的是,去掉宏,这样你就可以在运行时看到传递给getenv
的内容:
std::string string_variable;
static const std::string MY_VAR = "PATH";
int main()
{
char const* temp = getenv(MY_VAR.c_str());
if(temp != NULL)
{
string_variable = std::string(temp);
}
}
相关文章:
- 使用C++程序合并排序没有得到正确的输出
- 为什么在这个代码结束循环中没有得到结束
- 如果我std::dynamic_pointer_cast并且底层dynamic_cast的结果为null,那么返回的sh
- 如何在 c++ 中'NULL'字符串
- 序列化,没有库的整数,得到奇怪的结果
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- c++使用foreach使数组为null
- 计算缩放多边形的比例,得到给定的多边形面积
- 当使用通配符和null指针调用函数时,对输出的说明
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- 为什么我在使用void函数时得到错误代码C2276
- 如何在cuSparse中得到稀疏矩阵的对角线
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 当字段可以为null时,如何使用C++接口在Avro中写入数据
- 方法内部但循环仍得到预期的不合格id错误C++
- 我正在尝试计算 char 数组中的内容,直到 null 终止,但每次编译时,我都会得到一个比我的数组大的数字
- Node-ffi 绑定到 NULL 终止的 C 字符串数组,但得到“分段错误:11”
- C++将文本文件写入字符串并转换为double,会得到null char或0
- pthread_getspecific(key)得到的不是NULL结果,但没有调用pthread_setspecific
- 得到环境变量,得到NULL