Solaris 10 10/09 Release Notes

STDIO getc Family EOF Condition Behavior Change

Applications that were built in strict standard C conformance mode are affected by the behavior changes of certain library functions. An example is applications that were compiled by using the cc -Xc or c89 compilation mode. The behavior has changed for the following library functions:

A formal interpretation of the 1990 C Standard requires that after an end-of-file condition is set, no more data is returned from the file on subsequent input operations. The exception is if the file pointer is repositioned or the error and end-of-file flags are explicitly cleared by the application.

The behavior for all other compilation modes remains unchanged. Specifically, the interfaces can read additional newly written data from the stream after the end-of-file indicator has been set.

Workaround: Call fseek() or clearerr() on the stream to read additional data after the EOF condition has been reported on the stream.