aide:appels systemes en C
Bonjour,
J'ai un exercice qui demande d'écrire un programme en C qui accepte un nombre arbitraire de nom de fichiers comme paramètres, ouvre les fichiers, compte le nombre de leurs caractères et affiche les noms des fichiers et leurs tailles (exprimes en nombre de caractères) respectives sur la sortie standard.
Le programme doit traiter les erreurs dues à l'ouverture des fichiers et afficher les messages d'erreur adéquats.
Mon problème est lors de la phase de compilation, il m'affiche au maximum le nom et la taille de deux fichiers seulement. Voila mon code source et j'espère que vous pourrez m'aider à résoudre ce problème. Merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define w 1024
int main(int argc,char * argv[]){
int fd, nb;
char buf;
int i=1;
if (argc==1) printf("manque d'arguments\n");
else{
while (argv[i]!=NULL){
fd=open(argv[i],O_RDONLY);
if (fd==-1) printf("le fichier %s n'existe pas",argv[i]);
printf("==> le nom du fichier est: %s\n",argv[i]);
while ((nb=read(fd,&buf,w))>0)
printf(" sa taille est : %d caracteres\n",nb);
printf("\n");
close(fd);
i++;
}
}
}
} |