Notes de version de Solaris 10 10/09

Changement de comportement de la condition STDIO getc Family EOF

Les applications créées en stricte conformité avec le standard C sont concernées par les changements de comportement de certaines fonctions de bibliothèque. Par exemple, des applications compilées à l'aide du mode de compilation cc -Xc ou c89. Le comportement des fonctions de bibliothèque suivantes a changé :

Selon l'interprétation formelle du standard 1990 C, une fois qu'une condition de marquage de fin de fichier end-of-file est appliquée, aucune donnée ne doit plus être retournée du fichier à la suite d'opérations d'entrée ; sauf si le pointeur de fichier est repositionné ou si l'erreur ou les indicateurs de fin de fichier sont explicitement supprimés par l'application.

Le comportement des autres modes de compilation ne change pas. En particulier, les interfaces peuvent lire les dernières données écrites en provenance du flux après que l'indicateur de fin de fichier end-of-file a été appliqué.

Solution de contournement : appelez fseek() ou clearerr() sur le flux pour lire les données supplémentaires après que la condition EOF a été signalée sur celui-ci.