System return



  • Wenn ich das Programm Ping mit System öffne, bekomme ich doch am Ende einen Wert zurück geliefert. Ob Ping erfolgreich war oder nicht. Kann mir irgendwer erklären wie das funktioniert?? Also am besten auch mit Code weil ich in der Suche nix gefunden habe.
    MFG



  • man: system:

    If string is NULL, system() will return non-zero. Otherwise, system() returns the termination status of the shell in the format specified by waitpid(2).

    Ist es das, was du suchtest? Jetzt mußt du nur noch wissen, welche Errorcodes dein aufgreufenes Programm wann ausspuckt.



  • Und wie sieht denn der Code dazu aus? Ich hab nämlich immer so meine Probleme eigenen Code aus solchen Sachen zu schreiben. 🙄



  • int answer = system(my_command);
    cout<<"command ended with errorcode "<<answer<<endl;
    

    reicht das?



  • Wenn ich den Befehl nun ausführen lasse und mir den Wert in einem Eingabefeld darstellen lassen will, wird kein Wert angezeigt. Aber der Befehl wird trotzdem ausgeführt. Wenn ich einfach was normales in dem Feld darstelle kann man es auch sehen, wenn ich den Button drücke.

    m_Eingabefeld = answer;
    UdateData(FALSE);
    

    das ist der Code den ich benutzte.



  • Was für ein Kommando/Programm willst du denn eigentlich abfangen? Und wie gibt dieses Programm eventuelle Fehler zurück?
    (Rückgabe per Errorcode - entspricht dem C: exit(x); - dürften von system() als Returnwert ausgespuckt werden; Fehlermeldungen am Bildschirm - ala printf("Fehler") - bekommst du auf diesem Weg nicht -> Plan B = man: popen)



  • Ich hab hier im Forum mal gelesen, wenn man einen anderen PC anpingt mit system() gibt einem System 2 Werte zurück. Entweder der andere PC antwortet oder er antwortet nicht. Aber ich finde diesen Beitrag nicht mehr im Forum.


Anmelden zum Antworten