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 !