On se propose de réécrire les fonctions d'entrées-sorties de la librairie standard du langage C suivantes : fopen, fflush, fclose, fseek, fread, fwrite. De même que dans la librairie standard, ces fonctions seront implantées en utilisant les primitives POSIX correspondantes et devront gérer un tampon d'entrée-sortie. Nous renvoyons au manuel en ligne de ces fonctions pour toute précision sur leur sémantique.
MYFILE *fopen(const char *filename, const char *mode); int myfread(MYFILE *stream,int n,int taille,void *tampon); int myfwrite(MYFILE *stream,int n,int taille,void *tampon); int myfseek(MYFILE *stream,int position,int origine); int myfflush(MYFILE *stream); int myfclose(MYFILE *stream);On définiera aussi les valeurs symboliques pour les origines (MYSEEK_CUR, MYSEEK_SET et MYSEEK_END);
Les programmes seront impérativement écrits en C standard (ANSI) et respecterons la norme POSIX. On s'efforcera de vérifier que le code produit est portable sur différentes machines de l'UFR. Par conséquent, ils devront pouvoir être compilé (sans warning) avec les options suivantes des compilateurs gcc et cc (sur les serveurs HP):
cc -c -D_POSIX_C_SOURCE -Aa -w1 fichier.c gcc -c -D_POSIX_C_SOURCE -Wall -ansi -pedantic-errors fichier.c
Le projet sera réalisé par groupe de trois étudiants au plus. Il est vivement déconseillé (mais pas interdit) de travailler seul. Les différentes dates (remise d'un rapport et soutenance) seront précisées ultérieurement mais se situeront aux alentours de la fin Janvier 2003.