Linux 如何编写包含环境变量的路径?

Linux 如何编写包含环境变量的路径?,linux,parsing,qt,parameters,Linux,Parsing,Qt,Parameters,我正在编写一个在Linux中运行的Qt应用程序。我需要将文件写入: "$XDG_CONFIG_DIRS/whatever"/ "$HOME/whatever" 如何解析代码中的环境变量###Heading####?只使用普通库函数,您可以使用查找环境变量的值: const char *dirs = getenv("XDK_CONFIG_DIRS"); 如果未在环境中设置变量,则返回NULL,因此请确保您的代码能够处理这种情况 在这种情况下,您必须自己将变量值“插值”到文本的其余部分 不确定Q

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

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

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

只使用普通库函数,您可以使用
查找环境变量的值:

const char *dirs = getenv("XDK_CONFIG_DIRS");
如果未在环境中设置变量,则返回
NULL
,因此请确保您的代码能够处理这种情况

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


不确定Qt是否提供了一个包装器或更高级的东西来为您进行插值,我还没有使用Qt。

getenv,如前所述,如果您真的只针对Linux的话。如果希望它可移植到非Unix平台,则应使用qgetenv()或QProcessEnvironment::systemEnvironment().value(QLatin1String(“XDG\u CONFIG\u DIRS”))。一般来说,使用便携式Qt方式是一种很好的做法。

@Ignacio:嗯,不,显然不是。有时手指比大脑快。编辑,当然我指的是getenv()。谢谢。我怀疑
$XDG\u CONFIG\u DIRS
在非*nix平台下是否有用;)不过,良好做法仍然是正确的。嗨。刚才看到这个问题,同时提供了另一个问题的示例-参见