Tuvimos una discusión aquí en el trabajo con respecto a 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 simplemente tomar un buffer y tamaño. El único uso que podríamos hacer es si se quiere leer/escribir una matriz 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 justificar esta elección. en diseño.¿Cuál es el fundamento para tomar el tamaño de fread/fwrite y contar como argumentos?
De FREAD (3):
La función fread() lee nmemb elementos de datos, cada tamaño de bytes de longitud, de la corriente de datos apuntado por flujo, almacenándolos a la ubicación dada por ptr.
La función fwrite() escribe nmemb elementos de datos, cada tamaño bytes largo, en la secuencia a la que apunta el flujo, obteniéndolos de la ubicación dada por ptr.
fread() y fwrite() devuelven el número de elementos leídos o escritos con éxito (es decir, no el número de caracteres). Si se produce un error o se alcanza el final de archivo , el valor de retorno es un recuento breve de elementos (o cero).
hey esta es una buena pregunta. siempre me lo pregunté –
Por favor revisa este hilo: http://stackoverflow.com/questions/8589425/how-does-fread-really-work – Franken