先start
再write
然后readAllStandardOutput和readAllStandardError就可以读到输出了。
本文介绍,在Linux环境下,使用Qt中的 QProcess 类执行shell命令并获取输出。
头文件: #include <QProcess>
一、函数接口
QProcess 类提供了三个函数
二、执行命令
这里主要介绍 execute() 和 start() :
execute() 会将命令输出直接打印到控制台,调用程序无法捕获。
调用程序可通过 readAllStandardOutput() 捕获shell命令的输出
三、管 道
对于shell命令中的 | ,直接传入参数是不行的。
以上的方式是无法执行的。
可以将整个命令作为 sh 的参数传入 或 使用 QProcess::setStandardOutputProcess(QProcess *destination) 即将一个进程的标准输出流传入目标进程的标准输入流
对于需要sudo权限的命令,需要使用sudo权限打开qtcreator,或者直接在命令前加上sudo(不建议)。
当然, QProcess 不仅仅可以执行shell命令,也可以用于执行调用外部程序。
你是用p.getInputStream()获取调用程序的输出流的,这是正常信息的获取方法,还有异常信息的输出流,要用p.getErrorStream(),不过如果你要"同时"读取两个流的信息并显示出来,单线程肯定是不行的,要采用多线程的方式欢迎分享,转载请注明来源:内存溢出
评论列表(0条)