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 modifier

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 modifier

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.

Références modifier