Ausgabe von Programmaufruf in String umleiten
-
Hallo,
ich würde gerne ein Programm schreiben, welches den ping Befehl aufruft und die Ausgabe von diesem als string in meinem Programm zur Verfügung haben. Gibt es da Möglichkeiten?
-
Google mal nach pipes
Gruß
-
Beispiel:
#include <ctime> #include <cstdio> #include <cstdlib> int main () { FILE* readFile; char psBuffer[128]; readFile = _popen("ping localhost", "r"); if(readFile == NULL) return 1; while(fgets(psBuffer, 128, readFile)) { printf(psBuffer); } feof(readFile); return 0; }
Gruß
-
Danke für den Hinweis aber daraus werde ich nicht so schlau was ich da finde... Pipes ist irgendwas zwischen zwei Prozessen :)...
-
-
Naja,
du hast ja zwei prozesse.
Deine Anwendung und ping.ping schreibt seine Ausgabe auf Stdout. Daher öffnest du mit
FILE* file file = _popen("ping localhost", "r");
eine Pipe zu ping und liest aus dessen stdout puffer.
Jetzt holst du dir mit
fgets(...);
Das ganze aus dem stdout puffer von ping und gut is.
Schon hast du deinen string mit den Ausgaben von ping...
Gruß
-
Tausend Dank!!!