Index Index for
Section 3
Index Alphabetical
listing for F
Bottom of page Bottom of
page

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 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

pointer Points to an array. size Specifies the size of the variable type of the array pointed to by the pointer parameter. num_items Specifies the number of items of data. stream 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 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() 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 undefined.

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)

Index Index for
Section 3
Index Alphabetical
listing for F
Top of page Top of
page