Maison > développement back-end > C++ > Comment capturer la sortie des commandes système en temps réel en C/C à l'aide de « popen » ?

Comment capturer la sortie des commandes système en temps réel en C/C à l'aide de « popen » ?

Linda Hamilton
Libérer: 2024-12-05 14:43:15
original
633 Les gens l'ont consulté

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

Capturer la sortie du système avec popen

Question :

Comment capturer efficacement le réel- sortie temporelle d'une commande système invoquée à l'aide de system(), telle que system("ls"), pour un traitement ultérieur en C/C ?

Réponse :

La fonction popen fournit une méthode efficace pour capturer la sortie des commandes système. Sa syntaxe est :

#include <stdio.h>

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

int pclose(FILE *stream);
Copier après la connexion
  • command : Spécifie la commande système à exécuter.
  • type : Indique le mode d'ouverture du flux. En règle générale, utilisez "r" pour lire (stdout) ou "w" pour écrire (stdin).

Processus :

  1. Pour ouvrir un stream pour lire la sortie de la commande, utilisez :
FILE *stream = popen(command, "r");
Copier après la connexion
  1. Lisez le flux comme vous le feriez pour n'importe quelle autre entrée source :
char buffer[1024];
while (fgets(buffer, sizeof(buffer), stream) != NULL) {
    // Process each line of output
}
Copier après la connexion
  1. Fermez le flux une fois terminé :
pclose(stream);
Copier après la connexion

Exemple :

#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;
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal