在Qt中展开环境变量(getenv等价)
Expand environment variables in Qt (getenv equivalent)
我正在寻找一个等价的getenv函数
Qt在getenv()
周围有一个包装器,称为qgetenv()
。
QByteArray qgetenv ( const char * varName )
getenv()
是一个标准函数,但是Visual Studio已经弃用了它,这就是为什么Qt提供了qgetenv()
包装器。
请注意,如果您对获得标准文件系统位置(如主目录、应用程序数据目录等)感兴趣,您应该使用QDesktopServices::storageLocation()
(Qt 4)或QStandardPaths::writableLocation()
(Qt 5)。
对于Qt,在访问环境变量时也有一个"高级"的方法。这只有在Qt应用程序在QCoreApplication中运行时才有效,大多数Qt应用程序都是这样。
在这种情况下,您可以使用QProcessEnvironment,对于至少4.6的Qt版本。您可以使用
访问当前进程环境。QProcessEnvironment::systemEnvironment();
,你可以通过
查询任何变量QProcessEnvironment::systemEnvironment().value("<variablename>", "<defaultvalue>");
在大多数情况下,这应该比使用getenv/qgetenv方法更方便,因为这以一种更通用的方式掩盖了操作系统的实现,而且我认为它也是一种更"类似于qt"的方法。
相关文章:
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 主线的等价语句是什么
- C++ getenv and setenv
- c++ AVX512 本质上等价于 _mm256_broadcast_ss()?
- 结构和类在C++中真的等价吗?
- C++中的 Lambda <-> 闭包等价性
- 如何在 bash 中使用管道在 c++ 中使用 getenv() 访问文件?
- 等价于将c++上的char赋值给c#
- 为什么const char*和const char[]作为函数参数被认为是等价的
- C#中等价的C++内存复制
- 阻止库调用 getenv?
- 存在"等价",以便"comp"满足比较要求
- C++关于模板等价/重新定义的规则
- 方法的静态函数的等价性
- 调用 getenv() 时__strlen_sse2中的分段错误
- Pytorch/ATen C++ 中切片张量的等价性
- C C#等价对象实例
- std::error_code 和 std::error_condition 是否由相同的值和相同的类别构造,始终是等价
- Visual Studio environmant 变量未被 C++ stdlib getenv 识别
- 在Qt中展开环境变量(getenv等价)