Anwendungen, die im strengen Standard-C-Konformitätsmodus erzeugt wurden, sind von den Verhaltensänderungen bestimmter Bibliotheksfunktionen betroffen. Ein Beispiel hierfür sind Anwendungen, die im Kompilationsmodus cc -Xc oder c89 kompiliert wurden. Das Verhalten hat sich für folgende Bibliotheksfunktionen geändert:
fgetc()
fgets()
fgetwc()
fgetws()
getc()
getchar()
gets()
getwc()
getwchar()
getws()
Eine formale Interpretation des C-Standards von 1990 erfordert es, dass nach dem Setzen einer EOF-Bedingung (End of File) bei nachfolgenden Eingabeoperationen keine Daten mehr von der Datei zurückgegeben werden. Die Ausnahme hierbei ist eine Neupositionierung des Dateizeigers oder das explizite Löschen der Fehler- und EOF-Flags durch die Anwendung.
Das Verhalten aller anderen Kompilationsmodi ist unverändert. Insbesondere die Schnittstellen können zusätzlich neu geschriebene Daten aus dem Stream lesen, nachdem die EOF-Markierung gesetzt wurde.
Abhilfemaßnahme: Rufen Sie fseek() oder clearerr() für den Stream auf, um zusätzliche Daten zu lesen, nachdem die EOF-Bedingung an den Stream übergeben wurde.