¿Cuál es la razón para que fread / fwrite tome tamaño y cuente como argumentos?

Tuvimos una discusión aquí en el trabajo sobre por qué fread y fwrite toman un tamaño por miembro y cuentan y devuelven el número de miembros leídos / escritos en lugar de solo tomar un búfer y un tamaño. El único uso que podríamos encontrar es si desea leer / escribir una serie de estructuras que no son divisibles por la alineación de la plataforma y, por lo tanto, se han rellenado, pero eso no puede ser tan común como para garantizar esta elección. en diseño

DeFREAD (3):

La función fread () lee nmemb elementos de datos, cada tamaño de bytes de longitud, de la secuencia apuntada por secuencia, almacenándolos en la ubicación dada por ptr.

La función fwrite () escribe nmemb elementos de datos, cada tamaño de bytes de longitud, en la secuencia apuntada por secuencia, obteniéndolos de la ubicación dada por ptr.

fread () y fwrite () devuelven el número de elementos leídos o escritos correctamente (es decir, no el número de caracteres). Si se produce un error o se alcanza el final del archivo, el valor de retorno es un recuento corto de elementos (o cero).

Respuestas a la pregunta(7)

Su respuesta a la pregunta