【问题标题】:How to write a path that include environment variables?如何编写包含环境变量的路径?
【发布时间】:2010-11-15 13:08:15
【问题描述】:

我正在编写一个在 Linux 中运行的 Qt 应用程序。我需要写一个文件到:

"$XDG_CONFIG_DIRS/whatever"/ "$HOME/whatever"

如何在我的代码中解析环境变量## Heading ##?

【问题讨论】:

标签: linux parsing qt parameters


【解决方案1】:

只使用普通库函数,您使用@987654321@ 来查找环境变量的值:

const char *dirs = getenv("XDK_CONFIG_DIRS");

如果变量未在环境中设置,这将返回NULL,因此请确保您的代码能够处理这种情况。

在这种情况下,您必须自己将变量值“插入”到文本的其余部分中。

不确定 Qt 是否提供包装器或更高级的东西可以为您进行插值,我没有使用过 Qt。

【讨论】:

  • @Ignacio:呃,不,显然不是。有时,手指比大脑快。编辑,当然我的意思是 getenv()。谢谢。
【解决方案2】:

getenv,如前所述,如果你真的只针对 Linux。如果你想让它移植到非 Unix 平台,你应该使用 qgetenv() 或 QProcessEnvironment::systemEnvironment().value(QLatin1String("XDG_CONFIG_DIRS"))。一般来说,使用可移植的 Qt 方式是一种很好的做法。

【讨论】:

  • 我怀疑$XDG_CONFIG_DIRS 在非*nix 平台下是否有任何用处;)不过,好的做法仍然是正确的。
猜你喜欢
  • 1970-01-01
  • 2022-07-10
  • 2015-06-20
  • 2014-02-17
  • 2013-09-16
  • 2013-07-26
  • 2022-01-10
  • 1970-01-01
  • 2010-12-26
相关资源
最近更新 更多