DigitalSpirit / Wiki / Api

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 :

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 :

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 :

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 :

rewind

void rewind(FILE fd);

Réinitialise la position du pointeur au début du fichier. Paramètre :

filesize

unsigned long filesize(FILE fd);

Renvoie la taille du fichier spécifié par fd. Paramètre :

FIXME Les fonctions d'écriture n'étant pour l'instant non documenté car en cours de débuggage intensif :), ça ne devrait pas tarder !