1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| #include <stdio.h>
#include <errno.h>
#include <string.h>
extern int errno;
#define USAGE "Mauvaise utilisation\n %s nom_du_fichier\n"
#define LINE_MAX_SIZE 21
#define resultfile "~/result_tp3.txt"
int main (int argc, char * argv[])
{
FILE * fd;
char line[LINE_MAX_SIZE];
size_t ret;
int line_max_len = LINE_MAX_SIZE-1;
int cpt = 0;
int i;
if (argc != 2)
{
printf(USAGE,argv[0]);
return 1;
}
//ouverture du fichier
fd = fopen ("/etc/issue", "r");
if(fd == NULL)
{
printf("Impossible d'ouvrir le fichier '%s', %s\n", argv[1], strerror(errno));
perror("");
return 1;
}
//Compte du nombre de lignes
for (;;)
{
bzero(line,LINE_MAX_SIZE);
ret = fread(line,sizeof(char),line_max_len,fd);
if(ret == 0)
{
if(feof(fd) != 0)
{
break;
}else
{
printf("Une erreur s'est produite\n");
close(fd);
return 1;
}
}
//La lecture s'est bien passee
//compte les \n dans la ligne
for(i = 0; i<LINE_MAX_SIZE; i++)
{
if(line[i] == '\n') cpt++;
}
}
fclose(fd);
fd = fopen (resultfile,"w");
if (fd == NULL)
{
printf("Impossible d'ouvrir le fichier '%s', %s\n", argv[1], strerror(errno));
return -1;
}
fprintf(fd,"Le fichier %s contient %d lignes\n", argv[1], cpt);
close(fd);
return 0;
} |
Partager