如何编写包含环境变量的路径?
我正在编写一个在Linux中运行的Qt应用程序。我需要写一个文件到:如何编写包含环境变量的路径?
"$XDG_CONFIG_DIRS/whatever"/ "$HOME/whatever"
如何解决我的代码中的环境变量## Heading ##?
使用只是普通的库函数,你用getenv()
查找环境变量的值:
const char *dirs = getenv("XDK_CONFIG_DIRS");
这将返回NULL
如果变量未在环境中设置,所以一定要确保你的代码处理这个案例。
在这种情况下,您必须自己将变量值“插值”到文本的其余部分。
不知道Qt是否提供了一个包装或更高级别的可以为你做插值的东西,我没有使用过Qt。
不,不'getopt( )'。 – 2010-11-15 13:12:06
@Ignacio:呃,不,显然不是。有时候,手指比大脑更快。编辑,当然我的意思是getenv()。谢谢。 – unwind 2010-11-15 13:13:31
getenv,如前所述,如果你真的只是针对Linux。如果你希望它可移植到非Unix平台上,你应该使用qgetenv()或QProcessEnvironment :: systemEnvironment().value(QLatin1String(“XDG_CONFIG_DIRS”))。一般来说,使用便携式Qt方式是一种很好的做法。
我怀疑'$ XDG_CONFIG_DIRS'在非* nix平台下有什么用处;)好的做法仍然是正确的。 – 2010-11-15 14:34:48
嗨。刚刚看到这个问题,提供了一个例子在同时您的其他问题 - 请参阅http://stackoverflow.com/questions/4177953/saving-configs-in-qt-linux/4179013#4179013 – 2010-11-15 17:37:00