NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO
#include <stdio.h>size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream);
The fread() function reads into an array pointed to by ptr up to nitems items of data from stream, where an item of data is a sequence of bytes (not necessarily terminated by a null byte) of length size. It stops reading bytes if an end-of-file or error condition is encountered while reading stream, or if nitems items have been read. It increments the data pointer in stream to point to the byte following the last byte read if there is one. It does not change the contents of stream. It returns the number of items read.
The fwrite() function writes to the named output stream at most nitems items of data from the array pointed to by ptr, where an item of data is a sequence of bytes (not necessarily terminated by a null byte) of length size. It stops writing when it has written nitems items of data or if an error condition is encountered on stream. It does not change the contents of the array pointed to by ptr. It increments the data pointer in stream by the number of bytes written and returns the number of items written.
A call to fwrite() in buffered mode may return sucess even though the underlying call to write(2) fails. This can cause unpredicable results. Use either the write() function or the fwrite() function in unbuffered mode. See setvbuf(3C).
The ferror() or feof() routines must be used to distinguish between an error condition and end-of-file condition. See ferror(3C).
The fread() function returns the number of items read. The fwrite() function returns the number of items written.
If size or nitems is 0, then fread() and fwrite() return 0 and do not effect the state of stream.
If an error occurs, fread() and fwrite() return 0 and set the error indicator for stream.
The fread() function will fail if data needs to be read and:
The file is a regular file, size is greater than 0, the starting position is before the end-of-file, and an attempt was made to read at or beyond the offset maximum associated with the corresponding stream.
The fwrite() function will fail if either the stream is unbuffered or the stream's buffer needed to be flushed and:
The file is a regular file and an attempt was made to write at or beyond the offset maximum.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
MT-Level | MT-Safe |
read(2), write(2), fclose(3C), ferror(3C), fopen(3C), getc(3C), gets(3C), printf(3C), putc(3C), puts(3C), scanf(3C), setvbuf(3C), stdio(3C), attributes(5)
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO