Fread
Jump to navigation
Jump to search
Description
- Read block of data from stream
- Reads an array of count elements, each one with a size of size bytes, from the stream and stores them in the block of memory specified by ptr.
- The position indicator of the stream is advanced by the total amount of bytes read.
- The total amount of bytes read if successful is (size*count).
Syntax
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
Parameters
- ptr
- Pointer to a block of memory with a size of at least (size*count) bytes, converted to a void*.
- size
- Size, in bytes, of each element to be read.
- size_t is an unsigned integral type.
- count
- Number of elements, each one with a size of size bytes.
- size_t is an unsigned integral type.
- stream
- Pointer to a FILE object that specifies an input stream.
Return Value
- The total number of elements successfully read is returned.
- If this number differs from the count parameter, either a reading error occurred or the end-of-file was reached while reading. In both cases, the proper indicator is set, which can be checked with ferror and feof, respectively.
- If either size or count is zero, the function returns zero and both the stream state and the content pointed by ptr remain unchanged.
- size_t is an unsigned integral type.
Example
#include <stdio.h>
main()
{
char fname[21] ;
int n ;
FILE * fstr ;
printf ("File to open? ") ;
scanf ("%20s", fname) ;
fstr = fopen (fname, "r") ;
while ( fread (&n, sizeof(int), 1, fstr), ! feof(fstr) )
printf ("\n%d", n) ;
fclose (fstr) ;
}