Как использовать QProcess :: startDetached () в сочетании с setStandardOutputFile () - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть процесс, который должен запустить другой процесс, и я использую QProcess :: startDetached (), так как нет никакого отношения к разветвленному процессу.Сейчас я пытаюсь найти способ перенаправить стандартный вывод в файл.Когда я использую setStandardOutputFile () с QProcess :: startDetached (), перенаправление в файл не работает.Хотя setStandardOutputFile () прекрасно работает с QProcess :: start ().

Я думал, поскольку QProcess :: startDetached () является статическим методом, он может не работать с setStandardOutputFile (), но я видел это утверждение в документации QProcess,

Only the following property setters are supported by startDetached():
setArguments()
setCreateProcessArgumentsModifier()
setStandardOutputFile()
etc.

Попытка понять, что означает это утверждение в документации.

Вот суть кода,

void ForkProcess()
{
    QProcess processObj;
    processObj.setStandardOutputFile("/tmp/stdoutfile.txt");
    processObj.startDetached(processWithArguments);
}

Это не перенаправляет стандартный выводв файл, в то время как если я использую processObj.start (processWithArguments), перенаправление работает просто отлично.

Есть мысли о том, почему QProcess :: startDetached () не работает?

1 Ответ

0 голосов
/ 17 февраля 2019

Попробуйте использовать нестатический член `QProcess :: startDetached ...

bool QProcess::startDetached(qint64 *pid = nullptr);

Мне кажется, что следующее работает нормально (Suse Linux + Qt5.12.0)...

QProcess process;
process.setProgram("ls");
process.setStandardOutputFile("/tmp/stdoutfile.txt");
process.startDetached();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...