我试图用QProcess执行一些命令。从终端执行工作正常。
例如,我想执行以下命令:fpscan /path --report --verbose=2 --nospin
(使用f-prot防病毒扫描文件)。
我正在尝试以下代码:
QProcess* p = new QProcess(this);
p->start("fpscan", params);
进程陷入困境。
从ps -Al | grep fpscan
输出我看到,此过程打开了另一个过程。
process | WCHAN | TIME
1 | wait | 00:00:00
2 | pipe_w | 00:00:00
strace命令:
有什么建议吗?
P.S。:另一个命令clamscan /path params
适用于QProcess。
更新:我尝试使用fork,execl,它可以工作,所以问题出在QT和QProcess上。
pid_t pid = fork();
if (pid == 0) {
execl("/usr/local/bin/fpscan", "fpscan", "/path", ... , NULL);
}
答案 0 :(得分:0)
看起来该进程正在尝试从标准输入读取。