Namespaces
Variants

feof

From cppreference.net
< c ‎ | io
Definiert in Header <stdio.h>
int feof ( FILE * stream ) ;

Prüft, ob das Ende des gegebenen Dateistroms erreicht wurde.

Inhaltsverzeichnis

Parameter

stream - der zu prüfende Dateistrom

Rückgabewert

einen Wert ungleich Null, wenn das Ende des Streams erreicht wurde, andernfalls 0

Hinweise

Diese Funktion meldet nur den Stream-Zustand, wie er vom letzten I/O-Vorgang gemeldet wurde, sie untersucht nicht die zugehörige Datenquelle. Zum Beispiel, wenn der letzte I/O-Vorgang ein fgetc war, der das letzte Byte einer Datei zurückgab, feof gibt null zurück. Der nächste fgetc schlägt fehl und ändert den Stream-Zustand zu end-of-file . Erst dann gibt feof einen Wert ungleich null zurück.

Im typischen Gebrauch stoppt die Eingabestromverarbeitung bei jedem Fehler; feof und ferror werden dann verwendet, um zwischen verschiedenen Fehlerzuständen zu unterscheiden.

Beispiel

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
    int is_ok = EXIT_FAILURE;
    FILE* fp = fopen(fname, "w+");
    if (!fp)
    {
        perror("File opening failed");
        return is_ok;
    }
    fputs("Hello, world!\n", fp);
    rewind(fp);
    int c; // note: int, not char, required to handle EOF
    while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
        putchar(c);
    if (ferror(fp))
        puts("I/O error when reading");
    else if (feof(fp))
    {
        puts("End of file is reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    fclose(fp);
    remove(fname);
    return is_ok;
}

Mögliche Ausgabe:

Hello, world!
End of file is reached successfully

Referenzen

  • C11-Standard (ISO/IEC 9899:2011):
  • 7.21.10.2 Die feof-Funktion (S. 339)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.19.10.2 Die feof-Funktion (S. 305)
  • C89/C90-Standard (ISO/IEC 9899:1990):
  • 4.9.10.2 Die feof-Funktion

Siehe auch

löscht Fehlerindikatoren
(Funktion)
gibt eine dem aktuellen Fehler entsprechende Zeichenkette an stderr aus
(Funktion)
prüft auf einen Dateifehler
(Funktion)