3 Stimmen

Linux-Konsolenbefehle in C++ (gcc-Compiler)

Wie kann ich Befehle an die Linux-Konsole (Ubuntu) von meinem C++ Programm aus geben und den Wert, den mein Befehl liefert, einer String-Variablen zuweisen? Bitte geben Sie mir ein Beispiel, bei dem das Programm einfachen Befehl "uname -a" an die Konsole gibt und das Ergebnis schreibt.

Entschuldigung für mein schlechtes Englisch, ich kenne es sehr wenig. Ich würde mich sehr freuen, wenn jemand seine Antwort auf Russisch schreiben würde (wenn es erlaubt ist). Ich habe nach Antworten auf meine Frage in russischen Quellen gesucht, aber nichts gefunden, du bist meine letzte Hoffnung.

3voto

P Shved Punkte 90784

Der Befehl, den Sie benötigen, ist popen. Sie können Informationen dazu erhalten, indem Sie man popen in Ihre Shell eingeben; wenn Ihre Linux-Distribution in ihrer russischen Übersetzung ausgeführt wird, sollte sie die Informationen dazu auf Russisch anzeigen.

Im Grunde öffnet popen einfach eine "Datei" (Stream), mit der Sie genauso arbeiten können wie mit einer normalen Datei. Hier ist ein Beispiel, wie es verwendet werden könnte:

#include 
int main()
{
  FILE *f;
  char stuff[100];
  f = popen("uname -a", "r");
  fgets(stuff, 100, f);
  printf("%s", stuff);
  pclose(f);
}

Der obige Code enthält keine Fehlerbehandlung; Sie sollten die entsprechenden Überprüfungen einfügen, nachdem Sie die vollständige Handbuchseite gelesen und verstanden haben (rus).

1voto

bmargulies Punkte 94152

Suchen Sie nach russischen Sprachressourcen, die die Bibliotheksroutine popen(3) erklären. Sie müssen popen verwenden, um den Befehl auszuführen, und dann das Rohr lesen, um die Ausgabe zu erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X