QProcess :: execute с помощью команды su - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь вызвать tar из Qt проекта:

QProcess::execute("/bin/su", {"-", "user", "-c", "\'/bin/tar xpf /tmp/smt.tbz2 -C /tmp\'"})

Бит, который я получаю:

-su: /bin/tar xpf /tmp/smt.tbz2 -C /tmp: No such file or directory

Похоже, команда su делаетнеправильно интерпретировать команду после -c.

1 Ответ

2 голосов
/ 26 апреля 2019

Мне кажется, проблема в том, что вы цитируете команду для явного запуска: QProcess идет на несколько значений, чтобы гарантировать, что параметры передаются как есть, а не делятся дальше.

Вместо этого попробуйте ...

QProcess::execute("/bin/su", {"-", "user", "-c", "/bin/tar xpf /tmp/smt.tbz2 -C /tmp"});
...