PROJECT DOSSIER // [GET NEXT LINE]VOIR LA SOURCERETOUR AUX PROJETS →

01 // LE PROJET EN BREF

GET NEXT LINE

C

Lire un fichier ligne par ligne quand le système ne sait lire que des blocs d'octets.

Un des projets les plus réputés du cursus, parce qu'il semble simple et ne l'est pas. Le système d'exploitation ne connaît pas la notion de « ligne » : il rend des paquets d'octets d'une taille qu'on choisit. Le projet consiste à construire, par-dessus, une fonction qui rend une ligne complète à chaque appel — en se souvenant, d'un appel à l'autre, de ce qui a déjà été lu en trop.

Fonction get_next_line retournant une ligne complète par appel, au-dessus de read(), avec tampon persistant et taille de lecture paramétrable à la compilation.

PRINCIPALC
RÉALISATIONPROJET D’ÉQUIPE
VÉRIFICATIONCriterion
SOURCEINSPECTOR READY
PIÈCES JOINTES (Images, Photos, Videos)

03 // APPORTS CLÉS

  • Construire une abstraction « ligne » au-dessus d'une API qui ne connaît que les octets
  • Fonctionne quelle que soit la taille du tampon, y compris 1 octet
  • Sujet réputé simple qui piège tout le monde sur le même point : ce qui reste en mémoire entre deux appels

AU-DELÀ DU SUJET

  • Tests Criterion avec jeux de données dédiés (data.txt, void.txt) couvrant le fichier vide et le fichier sans saut de ligne final

04 // ARBORESCENCE DU CODE

LECTURE DES SOURCES…