Minix Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
FREAD(3)                 BSD Library Functions Manual                 FREAD(3)

NAME
     fread, fwrite -- binary stream input/output

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #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);

DESCRIPTION
     The function 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.

RETURN VALUES
     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.

SEE ALSO
     read(2), write(2)

STANDARDS
     The functions fread() and fwrite() conform to ANSI X3.159-1989
     ("ANSI C89").

BSD                           September 11, 2011                           BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS