在 C++ 中设置本地环境变量
如何在 C++ 中设置环境变量?
- 它们不需要保留过去的程序执行
- 它们只需要在当前进程中可见
- 偏好独立于平台但对于我的问题只需要在 Win32/64 上工作
谢谢
How do I set an environment variable in C++?
- They do not need to persist past program execution
- They only need to be visible in the current process
- Preference for platform independent but for my problem only needs to work on Win32/64
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我不确定环境变量是您所需要的,因为它们不会在程序运行之外使用。 无需参与操作系统。
您最好拥有一个单例类或一个包含所有这些值的命名空间,并在启动程序时初始化它们。
I'm not positive environment variables are what you need, since they aren't going to be used outside of this run of the program. No need to engage the OS.
You might be better off having a singleton class or a namespace that holds all these values, and initialize them when you start the program.
还有
setenv
,它比putenv
稍微灵活一些,因为setenv
检查环境变量是否已经设置,并且不会设置覆盖它,如果您设置“覆盖”参数表明您不想覆盖它,并且名称和值是setenv
的单独参数:我并不是说两者都是比对方更好或更差; 这仅取决于您的应用程序。
请参阅http://man7.org/linux/man-pages/man3/ setenv.3.html
There's also
setenv
, which is slightly more flexible thanputenv
, in thatsetenv
checks to see whether the environment variable is already set and won't overwrite it, if you set the "overwrite" argument indicating that you don't want to overwrite it, and also in that the name and value are separate arguments tosetenv
:I'm not saying either is better or worse than the other; it just depends on your application.
See http://man7.org/linux/man-pages/man3/setenv.3.html
我相信在 Win32 上它被称为 _putenv 。
如果您喜欢又长又难看的函数名称,请参阅 SetEnvironmentVariable 。
On Win32 it's called _putenv I believe.
See SetEnvironmentVariable also if you're a fan of long and ugly function names.