Promptproblem

Hi Leutz,

ich habe folgendes Problem. Wenn ich zB nen Prog schreibe, was einfach nen Ping signal gibt also:

#include <iostream>
#include <windows.h>

using namespace std;

string server;

int main()
{
cout<<"Host:"<<endl;
cin>>server;
cout<<server<<endl;
string befehl = "ping " + server;
system(befehl.c_str());
system("pause");
return 0;
}

Dann taucht ja im Command eben die Verzögerung und die Größe an und....
Was muss man machen wenn man jetzt das Resultat in eine Variable speichern will.
 
also eine einfache lösung gibts fuer dein problem wohl net. ich schätze mal, du willst einen bestimmten pc anpingen und dann das ergebnis innerhalb deines programmes auswerten lassen..da aber windows kein einfaches piping unterstuetzt, wärs wahrscheinlich am saubersten, wenn du mithilfe der windows sockets eine eigene ping-implementierung schreibst, da du da dann auch zugriff auf die ergebnisse hast.
relativ kompliziert, aber trotzdem möglich ist, die ein-und ausgabe des programms mittels pipes umzuleiten (Microsoft beispiel dazu unter http://msdn2.microsoft.com/en-us/library/ms682499.aspx) der aufwand steht aber wahrscheinlich nicht im verhältnis zu deinem vorhaben.
ein workaround dafuer wäre in meinen augen, das kommando zu modifizieren, so dass es das output in eine datei speichert, welche du dann auslesen kannst:
Code:
string befehl = "ping " + server + " > dafile.txt";
fopen("dafile.txt", "r");
...
weiß allerdings net, wie das verhalten der system()-funktion ist und ob die nicht zurueckkehrt, bevor dein ping-befehl beendet ist..

mfg jacky
 
Danke für deine Antwort.
Stimmt da hast du ja Recht ich hab vergessen das ich eigentlich das Windowspingprog aufrufe :D Das mit dem eingen Prog überlege ich mir mal.

:D 8)
 
Falls dir reichen würde, zu wissen ob der Server geantwortet hat, oder nicht, kannst du ja mal schaun, was der "system"-Aufruf zurückgibt...
 
Zurück
Oben