Compartilhar via


feof

Testa participante de Arquivo em um fluxo.

int feof( 
   FILE *stream 
);

Parâmetros

  • stream
    Ponteiro a estrutura de FILE .

Valor de retorno

A função de feof retorna um valor diferente de zero se uma operação de leitura tentou ler após o final do arquivo; retorna 0 de outra forma. Se o ponteiro de fluxo é NULL, a função invoca o manipulador inválido do parâmetro, conforme descrito em Validação do parâmetro. Se a execução for permitida continuar, errno está definido como EINVAL e retorna 0 de feof .

Para obter mais informações sobre esses e outros códigos de erro, consulte _doserrno, errno, _sys_errlist, and _sys_nerr.

Comentários

A rotina de feof (implementada como uma função e como uma macro) determina se o término de stream esteve passado. Quando o final do arquivo é transmitida, as operações de leitura retornam um indicador de participante de Arquivo até que o fluxo seja fechado ou até rewind, fsetpos, fseek, ou clearerr sejam chamados nele.

Por exemplo, se um arquivo tiver 10 bytes e você leia 10 bytes do arquivo, feof retornará 0 porque, embora o ponteiro de arquivo está no final do arquivo, você não tentou ler além de extremidade. Somente depois que você tentar ler um byte 11o retorno de feof um valor diferente de zero.

Requisitos

Função

Cabeçalho necessário

feof

<stdio.h>

Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.

Exemplo

// 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 );
}

Entrada: crt_feof.txt

Line one.
Line two.

Saída

Number of bytes read = 19

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.

Consulte também

Referência

Tratamento de erros (CRT)

E/S de fluxo

clearerr

_eof

ferror

perror, _wperror