| FREAD(3) | Library Functions Manual | FREAD(3) | 
fread, fwrite —
#include <stdio.h>
size_t
  
  fread(void
    * restrict ptr, size_t
    size, size_t nmemb,
    FILE * restrict
  stream);
size_t
  
  fwrite(const
    void * restrict ptr,
    size_t size,
    size_t nmemb,
    FILE * restrict
  stream);
fread() reads nmemb
  objects, each size bytes long, from the stream pointed
  to by stream, storing them at the location given by
  ptr.
The function fwrite() writes
    nmemb objects, each size bytes
    long, to the stream pointed to by stream, obtaining
    them from the location given by ptr.
Mixing fread() and
    fwrite() calls without setting the file position
    explicitly using fsetpos(3)
    between read and write or write and read operations will lead to unexpected
    results because of buffering the file pointer not being set to the expected
    position after each operation completes. This behavior is allowed by ANSI C
    for efficiency and it will not be changed.
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.
fread() and
  fwrite() conform to ANSI X3.159-1989
  (“ANSI C89”).
| September 11, 2011 | NetBSD 9.4 |