fread(3) Library Functions Manual fread(3)
NAME
fread, fread_unlocked, fwrite, fwrite_unlocked - Perform input/output operations
LIBRARY
Standard C Library (libc.so, libc.a)
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);
STANDARDS
Interfaces documented on this reference page conform to industry standards 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 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 following 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 specified
by the num_items parameter have been written. The fwrite() function 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() func-
tions 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().
RELATED INFORMATION
Functions: read(2), write(2), fopen(3), getc(3), gets(3), printf(3), putc(3), puts(3), scanf(3)
Standards: standards(5) delim off
fread(3)