fread(3)fread(3)NAME
fread, fread_unlocked, fwrite, fwrite_unlocked - Perform input/output
operations
SYNOPSIS
#include <stdio.h>
size_t fread(
void *pointer,
size_t *size,
size_t *num_items,
FILE *stream ); size_t fread_unlocked(
void *pointer,
size_t *size,
size_t *num_items,
FILE *stream ); size_t fwrite(
const void *pointer,
size_t *size,
size_t *num_items,
FILE *stream ); size_t fwrite_unlocked(
const void *pointer,
size_t *size,
size_t *num_items,
FILE *stream );
LIBRARY
Standard C Library (libc)
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
fread(), fwrite(): XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
Points to an array. Specifies the size of the variable type of the
array pointed to by the pointer parameter. Specifies the number of
items of data. Specifies the input or output stream.
DESCRIPTION
The fread() function copies num_items of data of length size from the
input stream into an array beginning at the location pointed to by the
pointer
r parameter.
The fread() function stops copying bytes if an End-of-File or error
condition is encountered while reading from the input specified by the
stream parameter, or when the number of data items specified by the
num_items parameter have been copied. The function leaves the file
pointer of the stream parameter, if defined, pointing to the byte fol‐
lowing the last byte read, if there is one. The fread() function does
not change the contents of the stream parameter.
The fwrite() function appends num_items of data of length size from the
array pointed to by the pointer parameter to the output stream.
The fwrite() function stops writing bytes if an error condition is
encountered on the stream, or when the number of items of data speci‐
fied by the num_items parameter have been written. The fwrite() func‐
tion does not change the contents of the array pointed to by the
pointer parameter.
The fread_unlocked() and fwrite_unlocked() functions are functionally
identical to the fread() and fwrite() functions, except that
fread_unlocked() and fwrite_unlocked() may be safely used only within a
scope that is protected by the flockfile() and funlockfile() functions
used as a pair. The caller must ensure that the stream is locked before
using these functions.
NOTES
If the stream parameter is invalid, the result of calling the fread(),
fwrite(), fread_unlocked(), and fwrite_unlocked() functions is unde‐
fined.
RETURN VALUES
Upon successful completion, the fread(), fwrite(), fread_unlocked(),
and fwrite_unlocked() functions return the number of items actually
transferred. If the num_items parameter is negative or 0 (zero), no
characters are transferred, and a value of 0 (zero) is returned. If a
read or write error occurs, the error indicator for the stream is set,
and errno is set to indicate the error.
ERRORS
Refer to the fgetc(3) reference page for error codes returned by
fread() and fread_unlocked().
Refer to the fputc(3) reference page for error codes returned by
fwrite() and fwrite_unlocked().
SEE ALSO
Functions: read(2), write(2), fopen(3), getc(3), gets(3), printf(3),
putc(3), puts(3), scanf(3)
Standards: standards(5)fread(3)