Partager via


feof

Teste la fin de fichier sur un flux de données.

int feof( 
   FILE *stream 
);

Paramètres

  • stream
    Pointeur vers la structure FILE.

Valeur de retour

La fonction d'feof retourne une valeur différente de zéro si une opération de lecture a tenté de lire après la fin de fichier ; la valeur 0 dans le cas contraire. Si le pointeur de flux est un pointeur null, la fonction appelle le gestionnaire de paramètres invalides comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, la fonction définit errno avec la valeur EINVAL et le feof retourne 0.

Consultez _doserrno, errno, _sys_errlist et _sys_nerr pour plus d'informations sur ces éléments et autres codes d'erreur.

Notes

La routine feof (implémentée comme fonction et la macro) détermine si la fin de stream a été passée. Lorsque le fin de fichier est passé, les opérations de lecture retournent un indicateur de fin de fichier jusqu'à ce que le flux de données fermé ou jusqu'à rewind, fsetpos, fseek, ou clearerr est appelé par rapport à.

Par exemple, si un fichier contient 10 octets et vous lisez 10 octets du fichier, feof retourne 0, car bien que le pointeur de fichier soit à la fin de le fichier, vous n'avez pas tenté de lire au delà de la fin. Uniquement lorsque vous essayez de lire un 11ème octet retour feof une valeur différente de zéro.

Configuration requise

Fonction

En-tête requis

feof

<stdio.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Exemple

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

Entrée : crt_feof.txt

Line one.
Line two.

Sortie

Number of bytes read = 19

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Voir aussi

Référence

Gestion des erreurs (CRT)

E/S de flux

clearerr

_eof

ferror

perror, _wperror