title | ms.custom | ms.date | ms.reviewer | ms.suite | ms.technology | ms.tgt_pltfrm | ms.topic | apiname | apilocation | apitype | f1_keywords | dev_langs | helpviewer_keywords | ms.assetid | caps.latest.revision | author | ms.author | manager | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
_eof | Microsoft Docs |
11/04/2016 |
|
article |
|
|
DLLExport |
|
|
|
265703f4-d07e-4005-abf3-b1d0cdd9e0b0 |
14 |
corob-msft |
corob |
ghogen |
Tests for end of file (EOF).
int _eof(
int fd
);
fd
File descriptor referring to the open file.
_eof
returns 1 if the current position is end of file, or 0 if it is not. A return value of -1 indicates an error; in this case, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, errno
is set to EBADF
, which indicates an invalid file descriptor.
The _eof
function determines whether the end of the file associated with fd
has been reached.
Function | Required header | Optional header |
---|---|---|
_eof |
<io.h> | <errno.h> |
For more compatibility information, see Compatibility in the Introduction.
// crt_eof.c
// This program reads data from a file
// ten bytes at a time until the end of the
// file is reached or an error is encountered.
//
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <share.h>
int main( void )
{
int fh, count, total = 0;
char buf[10];
if( _sopen_s( &fh, "crt_eof.txt", _O_RDONLY, _SH_DENYNO, 0 ) )
{
perror( "Open failed");
exit( 1 );
}
// Cycle until end of file reached:
while( !_eof( fh ) )
{
// Attempt to read in 10 bytes:
if( (count = _read( fh, buf, 10 )) == -1 )
{
perror( "Read error" );
break;
}
// Total actual bytes read
total += count;
}
printf( "Number of bytes read = %d\n", total );
_close( fh );
}
This file contains some text.
Number of bytes read = 29
Error Handling
Low-Level I/O
clearerr
feof
ferror
perror, _wperror