所以我试试
char buffer[1000];
GetEnvironmentVariable("PATH",(char*)&buffer,sizeof(buffer));
std::cout << buffer << std::endl;
检查它是否存在,但我看不清楚它是否为空?并且它会产生一些非常糟糕的输出=(
答案 0 :(得分:3)
MSDN对此有GetEnvironmentVariable
:
如果函数失败,则返回值为零。如果在环境块中找不到指定的环境变量,则GetLastError将返回ERROR_ENVVAR_NOT_FOUND。
(资料来源:http://msdn.microsoft.com/en-us/library/ms683188.aspx)
所以我猜你应该测试函数的返回值:
char buffer[1000];
if(GetEnvironmentVariable("PATH", buffer, sizeof(buffer)))
{
// non-zero, go ahead!
std::cout << buffer << std::endl;
}
else
{
// zero, something went wrong
}
答案 1 :(得分:0)
你总是可以使用getenv
如果变量不存在则返回null,如果空白则返回空白字符串。
答案 2 :(得分:0)
未设置环境变量时,GetEnvironmentVariable返回0,GetLastError()返回ERROR_ENVVAR_NOT_FOUND(203)。
查看文档:{{3}}