Récupérer résultat commande linux en C
Salut à tous !
Après avoir cherché sur internet, j'ai réussi à trouver quelques pistes à la résolution, mais pas la solution finale !
Mon problème:
J'écris un programme en C, et j'aimerais récupérer dans mon programme le nombre de fichiers contenu dans un dossier spécifique. Pour cela, j'avais tout d'abord pensais à faire un script shell, mais étant débutant je n'ai pas vraiment réussi à faire ce que je voulais.
J'ai ensuite découvert la commande , et j'en suis donc arrivé au code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| int nb_descripteurs(){
int nb;
FILE *ptr;
ptr = fopen("mon_repertoire/NB_DESCRIPTEUR.txt","w");
fprintf(ptr,"%d",system("ls mon_repertoire | wc -l"));
fscanf(ptr,"%d",&nb);
return (nb);
}
int main()
{
printf("%d", nb_descripteurs());
return 0;
} |
Voilà mais le soucis ici c'est que lorsque que j'exécute mon programme, je me retrouve avec affiché à l'écran:1 étant le nombre réel de fichiers présent, "calculé" par la commande linux, et 0 étant la valeur de la variable nb.
Quelqu'un aurait-il une solution pour enregistrer correctement 1 dans ma variable nb s'il-vous-plaît ?
Merci beaucoup ! :D