Freigeben über


feof

Tests für Dateiende in einem Stream.

int feof( 
   FILE *stream 
);

Parameter

  • stream
    Zeiger zur FILE-Struktur.

Rückgabewert

Die feof-Funktion gibt einen Wert ungleich 0 (null) zurück, wenn ein Lesevorgang versucht hat, über das Ende der Datei zu lesen; sie andernfalls gibt 0 zurück. Wenn der Stream-Zeiger eine NULL ist, wird die Funktion den ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, wird errno auf EINVAL und die feof zurückgibt 0 festgelegt.

Weitere Informationen zu diesen und anderen Fehlercodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.

Hinweise

Die Routine feof (implementiert als Funktion und als Makro) bestimmt, ob das Ende von stream übergeben wurde. Wenn die Datei übergeben wird, geben Lesevorgänge einem Dateiende-Indikator zurück, bis der Stream geschlossen wird, oder auf rewind, fsetpos, fseek oder clearerr für das Element aufgerufen wird.

Wenn eine Datei 10 Bytes enthält und Sie 10 Bytes aus der Datei lesen, gibt feof 0 zurück, da, obwohl der Dateizeiger am Ende der Datei ist, Sie nicht versucht haben, über das Ende hinaus zu lesen. Erst nach Sie versuchen zu lesen, wird ein 11 Byte. feof Rückgabe ein Wert ungleich 0.

Anforderungen

Funktion

Erforderlicher Header

feof

<stdio.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

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

Eingabe: crt_feof.txt

Line one.
Line two.

Ausgabe

Number of bytes read = 19

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Fehlerbehandlung (CRT)

Stream-E/A

clearerr

_eof

ferror

perror, _wperror