Fread in c: The function size_t fread(void *ptr, size_t size, size_t count, FILE *stream); reads count number of objects each of size bytes from the given stream and stores them in the block of memory(array) specified by ptr. It copy total size x count bytes from given stream to memory block.
Function prototype of fread
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
- ptr : This is the pointer to a block of memory having atleast size*count bytes, type-casted to a void pointer.
- size : This is the size of each element to be read in bytes.
- count : This is the number of elements to be read from stream, each one with a size of size bytes.
- stream : A pointer to a FILE object which identifies a stream from where we want to read.
Return value of fread
fread() function in c: This function returns the total number of elements successfully read from stream as a size_t(size_t is an unsigned integral type). If either a reading error occurred or the end-of-file was reached then proper indicator is set, which can be checked with ferror and feof, respectively.
C program using fread function
Fread c example: The following program shows the use of fread function to read a string from stream and stores in a character array.
#include <stdio.h> #include <string.h> int main(){ FILE *file; char buff[20]; char *string = "fread C Standard library function"; /* Open file for reading and writing */ file = fopen("textFile.txt", "w+"); /* Write data to the file */ fputs(string, file); /* Reset file pointer to the beginning of file */ fseek(file, 0, SEEK_SET); /* Read string from file to a character array */ fread(buff, strlen(string)+1, 1, file);\ printf("%s\n", buff); fclose(file); return(0); }
Output
fread C Standard library function