Share this page

# fread

Input-Output Functions

Reads unformatted data from a stream into a buffer.

    size_t fread( void *buffer, size_t size, size_t count, FILE *file_pointer);

buffer | The buffer in which to store the data stream.
size | The size (in bytes) of each element to read.
count | The number of elements to read.
file_pointer | A pointer to a FILE object that identifies the input stream.

## Return Values

Returns the total number of items read. If this number differs from the requested amount (count parameter) an error has occurred or End Of File has been reached. To determine what happened, call feof or ferror.

## Example

The following example, for Windows platforms, opens a file, reads the contents into a buffer using fread, and then closes the file.

To run the example, copy the file readme.txt from the installation's dat directory to the c drive, or copy another file and change the value of filename.

    #include <stdio.h>
        int count, total = 0;
        char buffer[1000];
        FILE* file_stream;
        char * filename = "c:\\readme.txt";
        if ((file_stream = fopen(filename, "r")) == NULL ) {
            lr_error_message ("Cannot open %s", filename);
            return -1;
        }

     // Read until end of file

        while (!feof(file_stream)) {

     // Read 1000 bytes while maintaining a running count

            count = fread(buffer, sizeof(char), 1000, file_stream);
            lr_output_message ("%3d bytes read", count);

    // Check for file I/O errors
            if (ferror(file_stream)) {
                lr_output_message ("Error reading file %s", filename);
                break;
            }

    // Add up actual bytes read
            total += count;
        }

    // Display final total

        lr_output_message ("Total number of bytes read = %d", total );

    // Close the file stream

        if (fclose(file_stream))
            lr_error_message ("Error closing file %s", filename);

    Example:
                    Output:
    Action.c(19): 1000 bytes read
    Action.c(19): 1000 bytes read
    ...
    Action.c(19): 1000 bytes read
    Action.c(20): 977 read
    Action.c(34): Total number of bytes read = 69977

Tips to improve your search results... VuGen Function Reference Version 26.1 Function Reference 26.1 All View Local Help Center View Online Help Center Version: