Accessing Environment Variables In C++(在 C++ 中访问环境变量)
问题描述
我想在我正在编写的 C++ 程序中访问 $HOME
环境变量.如果我用 C 编写代码,我只会使用 getenv()
函数,但我想知道是否有更好的方法来做到这一点.这是我到目前为止的代码:
I'd like to have access to the $HOME
environment variable in a C++ program that I'm writing. If I were writing code in C, I'd just use the getenv()
function, but I was wondering if there was a better way to do it. Here's the code that I have so far:
std::string get_env_var( std::string const & key ) {
char * val;
val = getenv( key.c_str() );
std::string retval = "";
if (val != NULL) {
retval = val;
}
return retval;
}
我应该使用 getenv()
来访问 C++ 中的环境变量吗?有没有一些我可能遇到的问题,我可以通过一点点知识避免?
Should I use getenv()
to access environment variables in C++? Are there any problems that I'm likely to run into that I can avoid with a little bit of knowledge?
推荐答案
在 C++ 中使用 getenv()
没有任何问题.它由 stdlib.h
定义,或者如果您更喜欢标准库实现,您可以包含 cstdlib
并通过 std::
命名空间(即,std::getenv()
).这绝对没有错.事实上,如果您关心可移植性,这两个版本中的任何一个都是首选.
There is nothing wrong with using getenv()
in C++. It is defined by stdlib.h
, or if you prefer the standard library implementation, you can include cstdlib
and access the function via the std::
namespace (i.e., std::getenv()
). Absolutely nothing wrong with this. In fact, if you are concerned about portability, either of these two versions is preferred.
如果您不关心可移植性并且您正在使用托管 C++,则可以使用 .NET 等效项 - System::Environment::GetEnvironmentVariable()
.如果您想要 Windows 的非 .NET 等效项,您可以简单地使用 GetEnvironmentVariable()
Win32 函数.
If you are not concerned about portability and you are using managed C++, you can use the .NET equivalent - System::Environment::GetEnvironmentVariable()
. If you want the non-.NET equivalent for Windows, you can simply use the GetEnvironmentVariable()
Win32 function.
这篇关于在 C++ 中访问环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 C++ 中访问环境变量
基础教程推荐
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 使用从字符串中提取的参数调用函数 2022-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 从 std::cin 读取密码 2021-01-01