feof
Проверяет поток на достижение конца файла.
int feof(
FILE *stream
);
Параметры
- stream
[in] Указатель на структуру FILE.
Возвращаемое значение
Функция feof возвращает ненулевое значение, если операция чтения попыталась читать данные после конца файла; в противном случае она возвращает 0.Если указатель потока равен NULL, то функция вызывает обработчик недопустимого параметра, как описано в Проверка параметров.Если выполнение может быть продолжено, то errno установлено в EINVAL и feof возвращает 0.
См. раздел _doserrno, errno, _sys_errlist, and _sys_nerr для дополнительных сведений по этим и другим кодам возврата.
Заметки
Функция feof (реализованная как функция и как макрос) определяет, был ли достигнут конец stream.Когда достигнут конец файла, операции чтения возвращают признак конца файла до тех пор, пока поток не закрыт или пока не вызваны rewind, fsetpos, fseek или clearerr.
Например, если файл содержит 10 байтов, и производится чтение 10 байт из файла, функция feof вернет 0, потому что, даже если указатель файла находится в конце файла, не было попытки чтения за концом.Только после попытки считать 11-ый байт функцией feof будет возвращено ненулевое значение.
Требования
Функция |
Требуемый заголовок |
---|---|
feof |
<stdio.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
// crt_feof.c
// This program uses feof to indicate when
// it reaches the end of the file CRT_FEOF.TXT. It also
// checks for errors with ferror.
//
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int count, total = 0;
char buffer[100];
FILE *stream;
fopen_s( &stream, "crt_feof.txt", "r" );
if( stream == NULL )
exit( 1 );
// Cycle until end of file reached:
while( !feof( stream ) )
{
// Attempt to read in 100 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 );
}
Вход: crt_feof.txt
Line one.
Line two.
Output
Number of bytes read = 19
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.