Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink )

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;
}

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. smile

Edit : Où est défini (et comment) la constante BUFSIZ ?

Dernière modification par Renorems (Le 26/03/2006, à 09:20)

Hors ligne