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.