The functions
fread() and
fwrite() advance the file position indicator for the stream by the number of bytes read or written. They return the number of objects read or written. If
size or
nmemb is 0, the functions return 0 and the state of
stream remains unchanged. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).
The function
fread() does not distinguish between end-of-file and error, and callers must use
feof(3) and
ferror(3) to determine which occurred. The function
fwrite() returns a value less than
nmemb only if a write error has occurred.