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 : Sélectionner tout - Visualiser dans une fenêtre à part system("commande")
Voilà mais le soucis ici c'est que lorsque que j'exécute mon programme, je me retrouve avec affiché à l'écran:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }1 étant le nombre réel de fichiers présent, "calculé" par la commande linux, et 0 étant la valeur de la variable nb.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 1 0
Quelqu'un aurait-il une solution pour enregistrer correctement 1 dans ma variable nb s'il-vous-plaît ?
Merci beaucoup !
Partager