命令使用 shell 运行,但卡在 QProcess 中
Command run with shell but get stuck with QProcess
我正在尝试使用 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
跟踪命令:
- 等待4(-1,
- 读取(0,
有什么建议吗?
PS:另一个命令clamscan /path params
与QProcess一起工作。
更新:我尝试使用fork,execl并且它可以工作,所以问题出在QT和QProcess上。
pid_t pid = fork();
if (pid == 0) {
execl("/usr/local/bin/fpscan", "fpscan", "/path", ... , NULL);
}
看起来进程正在尝试从标准输入中读取。
相关文章:
- 如何通过cpp程序运行shell脚本
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用QProcess执行命令,并将结果存储在QStringList中
- shell排序中的交换和比较
- 终止 QProcess 不会终止子进程
- 在 Qt(C++) 中使用 QProcess 解压缩 - 提取目录问题
- 我适合在我的构建系统中使用 shell 脚本而不是AX_CHECK_COMPILE_FLAG吗?
- 当QProcess需要用户使用Qt输入时,如何阅读
- 使用提升过程获取 shell 命令的标准输出
- 如何在 Qt5 中执行多个 QProcess
- Q维德格特关闭事件(..)未使用 QProcess::terminate() 调用
- 终端如何在 shell 提示符下以编程方式阻止退格,以便您无法在其上退格,例如 $ 表示 bash 或 C:\blah\>
- CMake 引用我在 ~/bin 中创建的随机 shell 脚本(即使我删除了它)?
- 如何在 Linux 下执行 shell 命令 unsing QProcess?
- 在 c++ 中从执行的 shell 命令获取返回状态的安全方法是什么?
- 在 QProcess 中执行 shell 命令
- 使用QProcess将EndOfText(Ctrl-C)发送到交互式shell
- 命令使用 shell 运行,但卡在 QProcess 中
- 如何使用QProcess启动Shell脚本
- Qt通过qprocess运行shell命令