Utiliser read pour lire caractère par caractère.

Thomato87 Messages postés 117 Statut Membre -  
Sugel Messages postés 4859 Statut Membre -
Bonjour, je voudrais savoir si avec read on peut lire un fichier caractère par caractère jusqu'à arriver à un saut de ligne, en gros dire au read de lire un seul octet à chaque fois mais faire en sorte qu'il se souvienne de où il en est dans la lecture quand on l'appel à nouveau. Le but étant de pouvoir faire un malloc correct (et pas un buffer = malloc(10000) pour être sûr de stocker n'importe quel fichier)

Je suppose qu'il faut utiliser une variable static mais je ne sais pas où la mettre (peut être mon buffer ?)
Merci d'avance !

EDIT: Le soucis c'est que je dois pouvoir allouer assez d'espace à mon buffer pour lire toute la ligne mais que pour ça je dois savoir combien il y a de caractère dans la ligne et donc les stocker dans le buffer, en gros je voudrais allouer 1 octet à mon buffer mais faire en sorte que lors du read mon buffer ne stock pas toujours le premier caractère de la ligne.


A voir également:

1 réponse

Sugel Messages postés 4859 Statut Membre 727
 
La fonction fgetc est là pour ça !

Si tu veux savoir comment elle fonctionne, c'est pas bien sorcier:
http://mirror.fsf.org/pmon2000/3.x/src/lib/libc/fgetc.c

C'est en fait un wrapper de read, avec de la gestion d'erreur. C'est capital !

Définis un buffer de taille déterminée, que tu agrandis via un realloc (et copie vers un plus grand si realloc echoue) quand tu arrive au maximum de sa taille.
0