Heim > Backend-Entwicklung > C++ > Wie erfasst man Echtzeit-Systembefehlsausgaben in C/C mit „popen'?

Wie erfasst man Echtzeit-Systembefehlsausgaben in C/C mit „popen'?

Linda Hamilton
Freigeben: 2024-12-05 14:43:15
Original
570 Leute haben es durchsucht

How to Capture Real-time System Command Output in C/C   using `popen`?

Systemausgabe mit Popen erfassen

Frage:

Wie man die realen Daten effektiv erfasst- Zeitausgabe eines mit system() aufgerufenen Systembefehls, z. B. system("ls"), zur weiteren Verarbeitung in C/C ?

Antwort:

Die Popen-Funktion bietet eine effiziente Methode zum Erfassen der Ausgabe von Systembefehlen. Seine Syntax lautet:

#include <stdio.h>

FILE *popen(const char *command, const char *type);

int pclose(FILE *stream);
Nach dem Login kopieren
  • Befehl: Gibt den auszuführenden Systembefehl an.
  • Typ: Gibt den Modus zum Öffnen des Streams an. Normalerweise verwenden Sie „r“ zum Lesen (stdout) oder „w“ zum Schreiben (stdin).

Vorgang:

  1. So öffnen Sie ein Stream zum Lesen der Befehlsausgabe verwenden Sie:
FILE *stream = popen(command, "r");
Nach dem Login kopieren
  1. Lesen Sie den Stream wie jeden anderen Eingabequelle:
char buffer[1024];
while (fgets(buffer, sizeof(buffer), stream) != NULL) {
    // Process each line of output
}
Nach dem Login kopieren
  1. Schließen Sie den Stream, wenn Sie fertig sind:
pclose(stream);
Nach dem Login kopieren

Beispiel:

#include <stdio.h>

int main() {
    FILE *stream = popen("ls", "r");
    if (stream != NULL) {
        char buffer[1024];
        while (fgets(buffer, sizeof(buffer), stream) != NULL) {
            printf("%s", buffer);
        }
        pclose(stream);
    }
    return 0;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erfasst man Echtzeit-Systembefehlsausgaben in C/C mit „popen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage