Notas da versão Oracle Solaris 10 9/10

Alteração de comportamento de condição EOF na família getc do STDIO

Aplicativos que foram construídos em modo de conformidade de padrão estrito C são afetados pelas alterações de comportamento de certas funções de biblioteca. Um exemplo é o aplicativo que foi compilado utilizando o modo de compilação cc -Xc ou c89. O comportamento foi alterado para as seguintes funções de biblioteca:

Uma interpretação formal do padrão C 1990 requer que, depois de uma condição de fim de arquivo ser definida, nenhum dado retorne do arquivo em operações de entrada subsequentes. A exceção é se o ponteiro de arquivo for reposicionado ou o erro e os sinalizadores de fim de arquivo forem limpos pelo aplicativo.

O comportamento para todos os modos de compilação restantes não é alterado. Especificamente, as interfaces podem ler novos dados adicionais gravados do fluxo depois que o indicador de fim de arquivo tiver sido definido.

Solução alternativa: chame fseek () ou clearerr() no fluxo para ler dados adicionais depois que a condição EOF tiver sido reportada no fluxo.