如何暂停和恢复我在Qt中作为QProcess启动的子进程?
我使用QProcess启动espeak(文本到语音合成器)作为子进程(我通过它的stdin将文本提供给它):
espeak = new QProcess(this);
espeak->start("espeak");
espeak->write(text.toUtf8());
由于它是一个子进程,我对它没有很多控制权,但是我想添加暂停和恢复语音的选项,我打算通过暂停和恢复子进程来实现它。
然而,我在QProcess中找不到一个函数,所以也许我应该使用特定于平台的方式。我在Linux上,所以我可能会发送一个信号 - SIGSTOP和SIGCONT,as suggested by this thread。但是,我需要进程句柄/ pid。
答案 0 :(得分:3)
由于我在linux上,我使用了kill()函数。
#include <signal.h>
...
kill(process->pid(), SIGSTOP); // suspend
kill(process->pid(), SIGCONT); // resume