Maison >développement back-end >C++ >Comment puis-je capturer de manière transparente la sortie standard à partir d'une commande `system()` en C/C ?

Comment puis-je capturer de manière transparente la sortie standard à partir d'une commande `system()` en C/C ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-03 15:09:10465parcourir

How Can I Seamlessly Capture stdout from a `system()` Command in C/C  ?

Capturer la sortie stdout à partir d'une commande system() de manière transparente

Capturer la sortie stdout d'une application externe lancée à l'aide de la commande system() est essentielle pour de nombreuses applications. En C/C , il existe quelques approches pour accomplir cette tâche :

Une méthode optimale consiste à exploiter les fonctions popen() et pclose() :

#include <stdio.h>

int main() {
    FILE *fp;

    fp = popen("ls", "r");
    // Capture output and process accordingly
    pclose(fp);

    return 0;
}

Avec popen(), vous pouvez ouvrir un canal vers la sortie standard de la commande que vous spécifiez. La fonction pclose() ferme le canal et attend la fin de la commande, renvoyant l'état de sortie.

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:
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