LINUX.ORG.RU

QProcess в Linux - не выполняется «cd /path/ && ./file»

 , ,


0

1

Очень нужно это извращение для работы программы. Если отправляю с клиента Json:

mSocket->write("{\"operation\":0,\"command\":\"kate\"}");

На сервере:

QProcess* process = new QProcess(this);
process->start(QString::fromStdString(requestData.get<std::string>("command")));

…то все работает. Но если послать такую команду (а мне нужно именно в таком формате):

mSocket->write("{\"operation\":0,\"command\":\"cd /usr/bin && ./kate\"}");

…то нет. Причем в консоли работает, но через QProcess нет. В чем проблема? Что-то с путями?

Запускай процесс шелла, а уже ему передавай в качестве аргумента сложную команду. QProcess может только запустить 1 программу и передать ей параметры. Такие фичи как конвейеры и перенаправление вывода он не умеет, потому что по факту их реализует шелл.

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 1)