Henrik Brix Andersen writes:
 > Removing the fallback definitions broke compilation on at least one
 > platform, namely GNU/Linux which doesn't define _O_BINARY and/or
 > _O_TEMPORARY. Most likely other unix-like platforms where affected as
 > well.

Since Unix systems don't distinguish between "binary" and "text" modes
for file I/O, there is no O_BINARY (or _O_BINARY) on them. As for
O_TEMPORARY that isn't needed either, as the traditional, elegant,
Unix method is to unlink the temporary file while still keeping it

(And even if the functionality of those flags was needed on Unix, the
names wouldn't have the leading underscore. It is a bit strange by
Microsoft (well, what isn't...) to hide all the Unixish stuff they
provide in their C library with a leading underscore, purportedly in
order not to pollute the ANSI C namespace. As I see it, if you include
non-ANSI headers like <io.h> (or <unistd.h> on Unix) in your code, you
accept not to have a clean ANSI C namespace any longer. And, most
traditional Windows programs include <windows.h> anyway, which
pollutes the namespace like a 300 kg gorilla, with apparently no
restriction at all on on what kind of identifiers it introduces.)


Gimp-developer mailing list

Reply via email to