我想使用QProcess启动可执行文件,假设它位于主目录中。
以下代码有效:
QProcess process;
QString cmd = qgetenv("HOME") + "/executableFile";
process.start(cmd);
但是,如果我使用“〜”代表主目录,它将无效:
QString cmd = "~/executableFile";
也许这是一个愚蠢的问题,但我真的想知道原因。 希望得到你的帮助。谢谢!
答案 0 :(得分:4)
~
是由shell处理的特殊字符。
$ echo ~
/home/jbm
但是当你使用QProcess时,没有shell来启动你的进程(只是一个环境,这是不一样的),因此“〜”不被处理,而是被视为一个字符文字,实际上将成为可执行文件路径的一部分。