fread
fread est une fonction qui lit l'entrĂ©e de la mĂ©moire tampon d'un fichier. Elle est incluse dans l'en-tĂȘte stdio.h de la bibliothĂšque standard du C.
Syntaxe
size_t fread (void * restrict ptr, size_t size, size_t nmemb, FILE * restrict stream)
La fonction fread copie nmemb articles de donnĂ©es de taille size depuis l'entrĂ©e stream dans un tableau pointĂ© par ptr. Un article de donnĂ©es est une sĂ©quence de bytes (pas nĂ©cessairement terminĂ©e par un byte null) de longueur size. fread s'arrĂȘte lorsque nmemb articles ont Ă©tĂ© lus, que la fin du fichier a Ă©tĂ© atteinte, ou qu'une erreur s'est produite. En renvoyant les donnĂ©es, fread Ă©tablit un pointeur de fichier dans le flux pointant vers le byte aprĂšs le dernier byte lu. Le contenu de stream reste inchangĂ©. La fonction fread retourne le nombre d'articles qui ont Ă©tĂ© lus. Si nmemb est Ă©gal Ă zĂ©ro, aucune action n'est rĂ©alisĂ©e et la fonction renvoie 0.
Diagnostics
La fonction peut échouer avec les codes d'erreur suivants :
- EAGAIN - Ne peut pas lire le flux d'entrée immédiatement sans bloquer le processus, et le drapeau O_NONBLOCK est fixé pour le descripteur de fichier associé avec le flux.
- EBADF - Le descripteur de fichier ouvert pour la lecture n'est pas valide.
- EINTR - L'opĂ©ration de lecture a Ă©tĂ© arrĂȘtĂ©e par un signal avant qu'aucune donnĂ©e n'ait pu ĂȘtre lue.
- EIO - Impossible de lire à partir du terminal de contrÎle. Ceci se produit lorsque le processus est lancé en arriÚre-plan et que sa tentative de lecture depuis son terminal de contrÎle échoue, que ce soit parce que le groupe du processus est orphelin, ou parce que le processus ignore ou bloque le signal SIGTTIN.
- ENOMEM - Espace de stockage disponible insuffisant.
- ENXIO - Tentative de lecture depuis un périphérique inexistant, ou dont les capacités sont dépassées.