Dos Conmmandos in c++



  • Schönen guten Tag,

    Ich habe da folgendes Frage.

    Ich würde gerne eine Programm schreiben in dem man MS-Dos (die der Eingabeaufforderung unter XP und 2000) Befehle wie ping trace telnet usw. ausführen kann.

    Ich beschäftige mich jezt ungefähr ne Woche mit c++ und mir gefällt es sehr gut und nun möchte ich mal ne kleines eigenes Programm schreiben.

    so zu meinen Fragen:
    Also welche Bibliothek muss ich verwenden.

    Also wenn ich das Dos Commando als Funktion mache wie muss die dann in etwa aussehen? zum bsp ping x.x.x.x .

    Wäre sehr dankbar für Hilfe habe das Forum schon durchsucht aber dazu nichts gefunden.

    MFG

    Volvicer



  • Da Du die Programme, so wie ich das jetzt verstanden habe, ja nicht selbst implementieren willst, wäre in diesem Fall evtl. tatsächlich mal die Funktion int system(const char*); angebracht. Diese übergibt einen Befehl (in Form eines Strings) an den Kommandozeilen-interpreter und führt ihn aus.

    Bsp:

    #include <string>
    using namespace std;
    
    int main()
    {
    string cmd = "ping 127.0.0.1";
    system(cmd.c_str());
    return 0;
    }
    


  • ok danke und wie implementiere ich die selber? also ich meine ich brauche ja den code von ping usw. wo bekomme ich den?

    und wie kann ich auf das eigebniss reagieren? also wenn ping ok ist dann ok schreiben sonst nein.

    und kann ich die ip als variable machen das er ich die immer ändern kann im Programm?



  • Da gibts sicher Tutorials drüber im Netz, wie man z. B. ping implementiert. Einfach mal ein wenig suchen. 😉 (Noch ein "kleiner" Tipp: Informier dich mal drüber wie sockets funktionieren, die wirst du nämlich brauchen)



  • Zum Rest:

    system liefert 0 bei einer erfolgreichen Ausführung zurück, 1 bei einem Fehlschlag (kann man auch nachlesen).

    Den String, der system() übergeben wird, kannst Du ja im Prinzip nach belieben zusammenbauen. Sprich Du kannst auch sowas machen:

    string ip;
    cin >> ip;
    string cmd = "ping " + ip;
    

    Hier kann die IP vom Nutzer angegeben werden.



  • @Volvicer: Für den Anfang wird es wohl um einiges leichter sein, ping nicht selbst auszuprogrammieren sondern dieses nur aus deinem Programm heraus aufzurufen - eben wie gezeigt mit system().

    Anekdote: Und falls dir system() sehr gut gefällt komm niemals auf die Idee sytem("pause") zu verwenden 🙄

    MfG SideWinder



  • SideWinder schrieb:

    Anekdote: Und falls dir system() sehr gut gefällt komm niemals auf die Idee sytem("pause") zu verwenden 🙄

    MfG SideWinder

    Das habe ich schonmal gehört. Aber warum ist System("Pause") nicht gut?



  • Hallo,

    system sollte generell vermieden werden, da es bessere Möglichkeiten gibt. Ein Thema, das auch in den FAQ's zu finden ist:

    http://www.c-plusplus.net/forum/viewtopic.php?t=39453

    MfG


Anmelden zum Antworten