On 2016-04-02 5:22 PM, Paul Koning wrote:

On Apr 2, 2016, at 5:09 PM, Mouse <mo...@rodents-montreal.org> wrote:

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
stdio.

Actually, I would say that any supposedly-portable software that
depends on either behaviour is broken; AFAICT stdio has never promised
either way.
...
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
the tool 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.

--Toby

        paul




Reply via email to