2015-10-13 5 views
1

Я хочу использовать QProcess для запуска исполняемого файла, если он находится в домашнем каталоге.QProcess не работает с символом «~»

Следующий код работает:

QProcess process; 
    QString cmd = qgetenv("HOME") + "/executableFile"; 
    process.start(cmd); 

Однако, это не будет работать, если я использую «~», чтобы стоять в домашней директории:

QString cmd = "~/executableFile"; 

Может быть, это глупый вопрос, но я действительно хочу знать, почему. Надеюсь получить вашу помощь. Благодаря!

ответ

4

~ - специальный символ, обрабатываемый оболочкой.

$ echo ~ 
/home/jbm 

Но когда вы используете QProcess, нет такой вещи, как оболочка для запуска процесса (просто среда, которая не одно и то же), поэтому «~» не обрабатывается, а рассматривается как буквенный символ, который фактически будет частью пути к вашему исполняемому файлу.

+0

Большое спасибо !!! – Tracyliving

Смежные вопросы