NAME
fread
, fwrite
— binary stream
input/output
SYNOPSIS
#include
<stdio.h>
size_t
fread
(void
*ptr, size_t size,
size_t nmemb,
FILE *stream);
size_t
fwrite
(const
void *ptr, size_t
size, size_t nmemb,
FILE *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.
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, fread
() and
fwrite
() return 0 with no change made to the
stream. If the product of size
and nmemb results in integer overflow, 0 is returned
and errno is set to EOVERFLOW
. 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
STANDARDS
The functions fread
() and
fwrite
() conform to ANSI
X3.159-1989 (“ANSI C89”).
HISTORY
The functions fread
() and
fwrite
() first appeared in
Version 7 AT&T UNIX.