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

Fermé
Thomato87 Messages postés 107 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 8 juin 2015 - Modifié par Thomato87 le 24/12/2014 à 12:00
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 - 24 déc. 2014 à 17:09
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 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 725
24 déc. 2014 à 17:09
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