On 2016-04-02 5:22 PM, Paul Koning wrote:
On Apr 2, 2016, at 5:09 PM, Mouse <mouse at
It appears that the stdio that I'm linking
against on OS X 10.9.5
does not keep the file pointers synchronized between the system and
Actually, I would say that any supposedly-portable software that
depends on either behaviour is broken; AFAICT stdio has never promised
I'd say it's about as important to know what is _promised_ as it is to
know what _actually happens_. This sort of thing is why.
I wonder how clearly the various manpages state the promises.
It's unfortunate that lots of programmers have the habit of blaming
when their code breaks because they are doing "undefined"
things. There's a great paper about undefined things in C, and what
compilers may do, and the way a number of well known open source
projects react -- not by fixing the code but by turning off all manner
of optimizations instead.
Anyone interested in C and UB will want to read most of
John Regehr's http://blog.regehr.org/
- it hosts some of the best
material on UB.