Desde la página del Linux de fwrite
fread() y fwrite() devuelve el número de elementos de leer correctamente o escrito (es decir, no el número de caracteres). Si se produce un error, o se llega al final del archivo, el valor de retorno es un recuento breve de elementos (0 cero).
por lo que debe comparar con lo que se espera el valor de retorno.
En muchos casos puede ser necesario para comprobar si hay
errno
igual a
EAGAIN
o
EINTR
, en cuyo caso, que normalmente quiere volver a intentar la petición de escritura, mientras que en otros casos se desea manejar las escrituras cortas con gracia.
Para fwrite, en un relato corto(donde menos se escribió la totalidad de sus datos) se puede comprobar feof() y/o ferror() para ver si la corriente está regresando y de fin de archivo, EOF, como si se cerró un PIPE, o si el flujo tiene su indicador inducator de error establecido.
No es necesario comparar 'fwrite' con el número de elementos si se organiza siempre para llamarlo con el elemento' 1' de tamaño 'len'. Entonces los posibles valores de retorno son solo 0 y 1, donde 0 indica cualquier falla y 1 indica éxito. –