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 !