Las aplicaciones que se crearon en un modo cumplimiento estricto con C estándar se verán afectadas por cambios de comportamiento en determinadas funciones de biblioteca. Por ejemplo, las aplicaciones que se compilaron utilizando el modo de compilación cc -Xc o c89. El comportamiento se ha cambiado para las siguientes funciones de biblioteca:
fgetc()
fgets()
fgetwc()
fgetws()
getc()
getchar()
gets()
getwc()
getwchar()
getws()
Una interpretación formal de la norma 1990 C requiere que después de definir una condición de final de archivo, el archivo no devuelve más datos en las siguientes operaciones de entrada. La excepción es si el puntero del archivo se vuelve a colocar o si la aplicación elimina explícitamente el error y los indicadores de fin de archivo.
El comportamiento del resto de modos de compilación se mantiene igual. Específicamente, las interfaces pueden leer datos adicionales recién escritos en la cadena después de haber definido el indicador de fin de archivo.
Solución: llame a las funciones fseek() o clearerr() en la cadena para leer datos adicionales después de que la condición EOF se haya notificado en la cadena.