votre avis sur une fonction qui copie un fichier dans un buffer
Bonjour
Voila je suis apres m' entrainer un peu, donc j ai fait un programme qui prend un fichier en argument , puis (dans la fonction ci-dessous) il recopie tout le fichier dans un buffer pour ensuite l afficher, donc pour etre sur de pas avoir de probleme, je realloue le buffer tous le a chaque fois , mais je voudrais savoir ce que vous en pensez, si vous voyez des erreurs ou si il y a mieux et plus simple enfin bref votre avis quoi, pour l instant ca marche tres bien mais j ai quand meme des doute. voila le fichier en question :
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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #include <stdio.h>
#include <stdlib.h>
#include "header.h"
#define BUF_SIZE 1024
char *lire_fichier(FILE* fd, char *buffer)
{
int taille = BUF_SIZE;
buffer = malloc(sizeof(char) * BUF_SIZE);
if(!buffer)
{
erreur("Allocation de la memoire echoue\n");
exit(EXIT_FAILURE);
}
int c, i = 0;
while((c = fgetc(fd)) && (c != EOF))
{
if(c == '\n')
{
ligne++;
}
if(caractere >= taille)
{
buffer = realloc(buffer, taille*2);
taille *= 2;
}
buffer[i++] = c;
caractere++;
}
buffer[i++] = '\0';
return buffer;
} |
Merrci a vous.