从 C++ 执行 bash 脚本并读取其输出 ubuntu sdk
Executing bash script from C++ and read its output ubuntu sdk
我有一个 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")
}
此外,我已经尝试研究这个但没有找到解决方案;是否也可以读取输出并显示在文本框中。
使用popen()
.
FILE *script;
char line[LINESIZE];
script = popen("./script.sh", "r");
while (fgets(line, sizeof(line), script)) {
...
}
pclose(script);
你是 运行 脚本并不重要。这将适用于任何 shell 命令。
对于希望在 QT 中执行此操作的任何人,这是我所做的:
QProcess proc;
proc.start("gnome-terminal", QIODevice::ReadWrite);
if (proc.waitForStarted() == false) {
qDebug() << "Error starting terminal process";
qDebug() << proc.errorString();
return (-1);
}
我有一个 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")
}
此外,我已经尝试研究这个但没有找到解决方案;是否也可以读取输出并显示在文本框中。
使用popen()
.
FILE *script;
char line[LINESIZE];
script = popen("./script.sh", "r");
while (fgets(line, sizeof(line), script)) {
...
}
pclose(script);
你是 运行 脚本并不重要。这将适用于任何 shell 命令。
对于希望在 QT 中执行此操作的任何人,这是我所做的:
QProcess proc;
proc.start("gnome-terminal", QIODevice::ReadWrite);
if (proc.waitForStarted() == false) {
qDebug() << "Error starting terminal process";
qDebug() << proc.errorString();
return (-1);
}