#1 Le 26/03/2006, à 08:39
- Renorems
[Résolu] [C] Récupérer la sortie d'une commande shell
Bonjour à tous (et à toutes mais ça j'y crois pas trop )
J'aimerais savoir quelle est la manière la plus propre selon vous pour récupérer la sortie d'une commande en C. Par exemple, admettons que j'ai un programme qui doive lancer ls et récupérer sa sortie pour le réafficher d'une autre manière. Comment faire ?
Bonne journée,
Renorems.
Dernière modification par Renorems (Le 26/03/2006, à 09:14)
Hors ligne
#2 Le 26/03/2006, à 09:06
- Xaero
Re : [Résolu] [C] Récupérer la sortie d'une commande shell
via popen, et tu lis le contenu.
Petit exemple, pour afficher le resultat de ls -lSh :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
FILE *f;
char buffer[BUFSIZ];
if ( (f = popen("ls -lSh", "r")) == NULL ) // ouverture
exit(1);
while ( fgets(buffer, BUFSIZ, f) != NULL )
fputs(buffer, stdout);
/**
* ici on l'affiche sur stdout (sortie standard),
* mais tu peux faire ce que tu veux de la ligne lue
*/
pclose(f); // fermeture
return EXIT_SUCCESS;
}
Think you are addicted ? Quake makes you feel it !
jEdit : Un éditeur qu'il est bien !
FreeMind : Un programme qu'il est bien aussi !
Hors ligne
#3 Le 26/03/2006, à 09:14
- Renorems
Re : [Résolu] [C] Récupérer la sortie d'une commande shell
Merci, c'est exactement ce qu'il me fallait.
Edit : Où est défini (et comment) la constante BUFSIZ ?
Dernière modification par Renorems (Le 26/03/2006, à 09:20)
Hors ligne