从C ++执行bash脚本并读取其输出ubuntu sdk

时间:2015-01-10 23:04:02

标签: c++ linux bash ubuntu qml

我有一个ubuntu应用程序,我试图从它执行bash脚本,但它似乎没有工作。我尝试用system()

做这件事
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>

    int main(int argc, char *argv[])
    {
// tried both
        system("./script.sh");
       // system ("script.sh")

    }

另外,我试过研究这个但没有找到解决方案;是否也可以在文本框中读取输出和显示。

2 个答案:

答案 0 :(得分:0)

使用popen()

FILE *script;
char line[LINESIZE];
script = popen("./script.sh", "r");
while (fgets(line, sizeof(line), script)) {
    ...
}
pclose(script);

您正在运行脚本并不重要。这适用于任何shell命令。

答案 1 :(得分:0)

对于任何想在QT中做到这一点的人来说,这就是我所做的:

 QProcess proc;

        proc.start("gnome-terminal", QIODevice::ReadWrite);

        if (proc.waitForStarted() == false) {
            qDebug() << "Error starting terminal process";
            qDebug() << proc.errorString();

            return (-1);
        }