Capturer efficacement la sortie standard à partir d'une commande system()
Lors de l'utilisation de la fonction system() pour lancer une application externe, telle que "ls ", il peut être souhaitable de capturer sa sortie en temps réel pour un traitement ultérieur. Pour y parvenir en C/C, envisagez l'approche optimale suivante :
Les fonctions popen() et pclose(), telles que documentées dans le manuel popen, fournissent un mécanisme robuste pour capturer stdout/stderr à partir de commandes externes. Voici un exemple de code :
#include <stdio.h> FILE *fp; char buffer[1024]; fp = popen("ls", "r"); while (fgets(buffer, sizeof(buffer), fp) != NULL) { // Process the stdout line } pclose(fp);
Cet extrait de code ouvre un canal vers la commande "ls" et parcourt chaque ligne de sortie, l'envoyant pour un traitement ultérieur. Une fois la commande externe terminée, pclose() ferme le canal et libère les ressources.
En employant cette technique, vous pouvez capturer efficacement la sortie standard de vos applications externes, garantissant une intégration transparente avec votre code C/C.
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!