Problem System() + String !!
-
./ steht für Aktuelles (in) Verzeichnis
das Programm leuft unter Linux
GG
Clever38
-
clever38 schrieb:
./ steht für Aktuelles (in) Verzeichnis
Man lernt nie aus

Zeig doch mal deinen Quellcode, vielleicht kann dir dann eher einer helfen.
-
das ist jetzt nur ein teil vom Main Programm
switch(setcase) { case 1: cout << "Ping regel "<<endl; argv[2]="ip"; cout<<"Out --> "<<parser(argc,argv)<<endl; ----> system("./ping"),parser(argc,argv); hier ist das Problem free(argv); break; case 2: cout << "tracert regel"<<endl; break; case 3: cout << "SNMP regel"<<endl; break; }parser(argc,argv) ist eine String
-
Was hast Du davon, "./ping" auszuführen und das Ausführungsergebnis, welches system("...") zurückliefert, mit einem String per Addition zu verknüpfen?
-
das is ja ein code-salat, sicher dass das kompilierbar ist?
meinst du sowas?:
// needs: <string> and <sstream> std::string cmd = "./ping"; std::string ip = "192.168.0.1"; std::stringstream ss; ss << cmd << " " << ip; system(ss.str().c_str()); // ich hab das das kleingeschrieben in errinerung // hier holst du dir zuerst den string aus dem // stringstream und dann daraus mit c_str() ein // const char*oder mit boost::format:
// needs <string> and <boost/format.hpp> std::string cmd = "./ping"; std::string ip = "192.168.0.1"; system(boost::str(boost:format("%s %s") % cmd % ip));ps: benutzt bitte richtige tabs, kommentare und cpp-tags in deinen posts.
-
(ich nehm mal an ich hab deine frage nich ganz verstanden, formulier sie doch bitte mal etwas klarer)
-
Also System() befehl kann auch ein Shell Script sein ,den ich halt ein paar Parameter übergebe .
Parameter werden halt in ein String gespeichert.
-
dann der von mir gepostete quellcode wohl doch das, was du suchst.
Schau ihn dir nochmal an. Wenn du Fragen hast, frag
-
OK alles hat Funktioniert

Herzlichen Dank für die Hilfe .

-
std::string cmd = "./ping"; std::string ip = "192.168.0.1"; system((cmd + " " + ip).c_str());