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