besoin d'aide pour le parcour d'un fichier

job2221

Membre confirmé
28 Octobre 2008
36
0
Bonsoir a tous

Je fais encore appel a votre aide pour une petite fonction en C
j'essaie de lire un fichier, le parcourir et stocker tout ce qu'il contient dans un buffer pour plus tard parcourir ce dernier sans soucis.

le probleme est que je ne doit utiliser que OPEN et READ les aurte fonctions de traitement sur les fichiers ne me sont pas permises (lol)

je met un bout de mon code en dessous le soucis est au niveau de read et open (vous y verrez des ????).

Merci a vous d'avance pour votre aide

Bloc de code:
char *lire_fichier(char *file, char *buffer)                                
{                                                                           
                                                                            
  int taille = BUF_SIZE;                                                    
  int c, i = 0;                                                             
  int f;                                                                    
  int car = 0;                                                              
  buffer = malloc(sizeof(char) * BUF_SIZE);                                 
                                                                            
  if(!buffer)                                                               
  {                                                                         
    erreur("Allocation de la memoire echoue\n");                            
  }                                                                         
  else                                                                      
  {                                                                         
    f = open(file, O_RDONLY);                                               
    read( ?????  );

  while(?? != '\n')                                                         
  {                                                                         
    if(car >= taille)                                                       
    {                                                                       
      buffer = realloc(buffer, taille*2);                                   
      taille *= 2;                                                          
    }                                                                       
                                                                            
    buffer[i++] = c;                                                        
                                                                            
    car++;                                                            
  }                                                                         
                                                                            
  buffer[i++] = '\0';                                                       
                                                                            
  return buffer;                                                            
}
 
Je pense aussi qu'il ya une erreur dans mon while
je pense devoir mettre while (buffer != \0)
mais il me manque la ligne ou jaffecte le contenue du fichier dans le nouveau buffer
 
Je voulais etre sur d'une chose.

Ca ne pose pas de probleme de lui mettre un char * file en tant que nom de fichier ?
et surtout, pourquoi me fait il un segmentation fault ? :D
et la , Bus Error ...
je comprends plus