Détail de chaque fonction du projet de pilote FAT16 avec un PIC18 : FatOnPic ===== fopen ===== FILE* fopen(const char* pathname, const rom unsigned char* mode); Cette fonction ouvre le fichier contenu dans pathname et retourne un pointeur vers un stream de fichier si l'opération à réussi, dans le cas contraire, retourne NULL. Paramètres : * const char* pathname : Le fichier à ouvrir * const rom unsigned char* mode : Le mode d'ouverture : * 'r' : Ouverture en lecture seul * 'w' : Ouverture en écriture seul et remise à 0, si le fichier n'existe pas, on le créé * 'a' : Ouverture en écriture seul à partir de la fin du fichier, si le fichier n'existe pas, on le créé Cette fonction renvoie une valeur de type FILE* Exemple : FILE* fd; // Créé une variable de type FILE fd = fopen("/toto.txt", 'r'); // Ouvre le fichier toto.txt à partir de la racine en lecture seule ===== fread ===== int fread(char* buf, size_t size, size_t num, FILE fd); Lit num éléments de fd dans le buffer pointé par buf et retourne le nombre d'éléments lus, la taille d'un élément est spécifié par par size. Paramètres : * char* buf : L'adresse du buffer à charger * size_t size : La taille d'un élément * size_t num : Le nombre d'élément à lire * FILE fd : Le descripteur de fichier Cette fonction renvoie le nombre d'élément lus. Exemple : FILE* fd; // Créé une variable de type fd char cbuf; // Le buffer de 1 octet fd = fopen("/toto.txt", 'r'); // Ouvre le fichier toto.txt à partir de la racine en lecture seule fread(&cbuf, 1, 1, fd); // Lit un octet dans le fichier toto.txt et le place dans cbuf ===== fclose ===== void fclose(FILE fd); Ferme le fichier correctement et libère la mémoire lui étant associé (si le fichier était en écriture, effectue un fflush). Paramètre : * FILE fd : Le descripteur de fichier Cette fonctione ne renvoie rien Exemple : FILE* fd; // Créé une variable de type fd char cbuf; // Le buffer de 1 octet fd = fopen("/toto.txt", 'r'); // Ouvre le fichier toto.txt à partir de la racine en lecture seule fread(&cbuf, 1, 1, fd); // Lit un octet dans le fichier toto.txt et le place dans cbuf fclose(fd); // Ferme le fichier et libère donc la mémoire ===== feof ===== unsigned char feof(FILE fd); Retourne une valeur non nulle si la fin du fichier à été atteinte. Paramètre : * FILE fd : Le descripteur de fichier ===== rewind ===== void rewind(FILE fd); Réinitialise la position du pointeur au début du fichier. Paramètre : * FILE fd : Le descripteur de fichier ===== filesize ===== unsigned long filesize(FILE fd); Renvoie la taille du fichier spécifié par fd. Paramètre : * FILE fd : Le descripteur de fichier FIXME Les fonctions d'écriture n'étant pour l'instant non documenté car en cours de débuggage intensif :), ça ne devrait pas tarder !