lima-city: Webhosting, Domains und Cloud
0 Pluspunkte 0 Minuspunkte

Wenn ich einen Befehl mit std::system aufrufe wie kann ich die Ausgabe in einem String speichern und nicht direkt ausgeben?

std::string cmd = c->getParameter("str")->getString();  
std::string full = "powershell -NoProfile -Command \"" + cmd + "\"";
std::system(full.c_str());
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Du kannst Powershell mit _popen/_pclose als eigenen Prozess ausführen und das Output in einen Puffer lesen.

std::string result;
FILE* pipe = _popen(full.c_str(), "r");   // Windows: _popen
if (!pipe) return;
char buf[4096];
while (fgets(buf, sizeof(buf), pipe))
    result += buf;
_pclose(pipe);
von (678 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2,514 Fragen

3,029 Antworten

281 Kommentare

13 Nutzer