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
571 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!

source:php.cn
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