Nous avons eu une discussion ici au travail de la raison pour laquelle fread et fwrite prendre une taille par membre et de les compter et de retourner le nombre de membres en lecture/écrite, plutôt que de simplement prendre un tampon et de la taille. La seule utilisation que pour ça, on pourrait arriver, c'est si vous voulez lire/écrire un tableau de structures qui ne sont pas divisibles par la plate-forme de l'alignement et ont donc été rembourré, mais qui ne peut pas être si commun pour justifier ce choix dans la conception.
De FREAD(3):
La fonction fread() lit nmemb éléments de données, chacun de la taille octets de long, à partir du flux pointé par stream, de les stocker à l'emplacement donné par ptr.
La fonction fwrite() écrit nmemb éléments de données, chacun de la taille octets longtemps, les flux pointé par stream, l'obtention de l'endroit donné par ptr.
fread() et fwrite() retourne le nombre d'éléments correctement lu ou écrit (c'est à dire, pas le nombre de caractères). Si une erreur se produit, ou l' en fin de fichier est atteinte, la valeur de retour est une courte distance de l'élément de comptage (ou zéro).