FreeBSD manual
download PDF document: fread_unlocked.3.pdf
FREAD(3) FreeBSD Library Functions Manual FREAD(3)
NAME
fread, fread_unlocked, fwrite, fwrite_unlocked - 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
fread_unlocked(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);
size_t
fwrite_unlocked(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.
The fread_unlocked() and fwrite_unlocked() functions are equivalent to
fread() and fwrite() respectively, except that the caller is responsible
for locking the stream with flockfile(3) before calling them. These
functions may be used to avoid the overhead of locking the stream and to
prevent races when multiple threads are operating on the same stream.
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 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 ISO/IEC 9899:1990
("ISO C90").