Hallo,
mit dieser Funktion:
1 | QString myprog::exec(QString cmd) {
|
2 |
|
3 | FILE* pipe = popen(cmd.toStdString().c_str(), "r");
|
4 | if (!pipe) return "ERROR";
|
5 |
|
6 | char buffer[128];
|
7 |
|
8 | QString result = "";
|
9 | sleep(5);
|
10 | while(!feof(pipe)) {
|
11 | if(fgets(buffer, 128, pipe) != NULL)
|
12 | result.append(result);
|
13 | }
|
14 | pclose(pipe);
|
15 | return result;
|
16 | }
|
versuche ich, die Ausgabe eines Programms auszulesen (sie funktioniert
so nicht, das weis ich).
Das Problem ist nur, dass diese FUnktion NUR dann den stdio aus, wenn
direkt eine Ausgabe des Programms kommt, ich muss aber warten, bis das
Programm beendet ist. ähnlich wie ein system(); befehl, nur dass ich die
Ausgabe in einem String brauche.. :)
Kennt einer eine Lösung oder hat eine Idee?
LG Matthias