problème de fread

problème de fread - C - Programmation

Marsh Posté le 09-09-2004 à 17:28:08    

Salut à tous, j'ai un pitit problème avec la fonction fread:
 
je vous explique, je lis un fichier, et quand j'affiche ce que je lis, visiblement, ça déborde sur la fin.
Je me suis dit que c'était parceque mon buffer était pas fermé et prenait ce qui trainnais dans la ram où je ne sais ou.
 
j'ai donc essayé de bloquer le buffer avec un '\0'
mais la, ça bloque tellement bien que ça sort de la boucle.
 
 
 
voila mon code
 
while (i = fread(&buf, sizeof(char *), BUF_SIZE, fd))
  {
   buf[i ] = '\0';
                        printf("%s\n", buf);
                }
 
 si vous avez une pitite idée, merci de m'en faire part

Reply

Marsh Posté le 09-09-2004 à 17:28:08   

Reply

Marsh Posté le 09-09-2004 à 17:37:54    

c'est bon, j'ai trouvé, c'est sizeof(char) et pas sizeof(char *)
 
halala, c'est la fatigue tout ça...

Reply

Marsh Posté le 09-09-2004 à 18:16:20    

sizeof(char) == 1 par définition, alors fait toi plaisir, mets 1 à la place

Reply

Marsh Posté le 09-09-2004 à 18:20:34    

mais si aprés, emporté par le mouvement, je me met à mettre 4 au lieu de sizeof(char *)par exemple, et qu'aprés je change d'archi, dieu seul sait la ou ça pourra mener
donc, vive sizeof()

Reply

Marsh Posté le 09-09-2004 à 19:04:53    

Je crois que la taille de char est la même sur toutes les architectures.

Reply

Marsh Posté le 10-09-2004 à 00:17:57    

WhatDe a écrit :

Je crois que la taille de char est la même sur toutes les architectures.


non

Reply

Marsh Posté le 10-09-2004 à 00:20:08    

WhatDe a écrit :

Je crois que la taille de char est la même sur toutes les architectures.

en terme de sizeof, en terme de 'byte' au sens C (plus petite unité addressable) oui

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed