feof

Description

Tests for end-of-file on a stream.

#include <stdio.h>

int feof( FILE *stream );

stream Pointer to FILE structure  

Remarks

The feof routine (implemented both as a function and as a macro) determines whether the end of stream has been reached. Once the end of the file is reached, read operations return an end-of-file indicator until the stream is closed or until rewind, fsetpos, fseek, or clearerr is called against it.

Return Value

The feof function returns a nonzero value after the first read operation that attempts to read past the end of the file. It returns 0 if the current position is not end-of-file. There is no error return.

Compatibility

Standards:ANSI, UNIX

16-Bit:DOS, QWIN, WIN, WIN DLL

32-Bit:DOS32X

See Also

clearerr, _eof, ferror, perror

Example

/* FEOF.C: This program uses feof to indicate when it reaches the end

* of the file FEOF.C. It also checks for errors with ferror.

*/

#include <stdio.h>

#include <stdlib.h>

void main( void )

{

int count, total = 0;

char buffer[100];

FILE *stream;

if( (stream = fopen( "feof.c", "r" )) == NULL )

exit( 1 );

/* Cycle until end of file reached: */

while( !feof( stream ) )

{

/* Attempt to read in 10 bytes: */

count = fread( buffer, sizeof( char ), 100, stream );

if( ferror( stream ) )

{

perror( "Read error" );

break;

}

/* Total up actual bytes read */

total += count;

}

printf( "Number of bytes read = %d\n", total );

fclose( stream );

}

Output

Number of bytes read = 697