_eof
Проверяет конец файла (EOF).
Синтаксис
int _eof(
int fd
);
Параметры
fd
Дескриптор файла, ссылающийся на открытый файл.
Возвращаемое значение
_eof
возвращает значение 1, если текущая позиция заканчивается в файле, или значение 0, если это не так. Возвращаемое значение -1 указывает на ошибку; В этом случае вызывается обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, errno
принимает значение EBADF
, что указывает на недопустимый дескриптор файла.
Замечания
Функция _eof
определяет, достигнут ли конец файла, связанного с fd
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Function | Обязательный заголовок | Необязательный заголовок |
---|---|---|
_eof |
<io.h> | <errno.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// 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 );
}
Входные данные: crt_eof.txt
This file contains some text.
Выходные данные
Number of bytes read = 29
См. также
Обработка ошибок
Низкоуровневый ввод-вывод
clearerr
feof
ferror
perror
, _wperror