E*

R

Richard Tobin

7.26.3 Errors <errno.h>
Macros that begin with E and a digit or E and an uppercase letter
may be added to the declarations in the <errno.h> header.

May an implementation define an error macro EOF with a value different
from the EOF in <stdio.h>?

-- Richard
 
L

lawrence.jones

Richard Tobin said:
7.26.3 Errors <errno.h>
Macros that begin with E and a digit or E and an uppercase letter
may be added to the declarations in the <errno.h> header.

May an implementation define an error macro EOF with a value different
from the EOF in <stdio.h>?

No. A strictly conforming program is allowed to include both headers
and the conflicting definitions of EOF would violate the constraint in
6.10.3p2. Since a conforming implementation is not allowed to have
entensions that invalidate strictly conforming programs, such a
definition is not allowed.

Conformance questions like this really belong in comp.std.c where
there's less traffic, much less heat, and far more light than there is
here.

-- Larry Jones

I think we need to change the rules. -- Calvin
 
H

Harald van Dijk

The paragraph can be read as a warning and as an implied
promise. First, it warns you not to use EEYORE for your own purposes,
because a future <errno.h> might define it. And second, it implies that
future <errno.h> versions will *not* define E12MANY or EiEiO or
E_IS_FOR_ELEPHANT, so you can use those identifiers as you wish.

Why can't E12MANY be defined? It's a macro that begins with E and a digit,
which is allowed, right? I'm asking because E2BIG is a fairly common real-
world macro provided by <errno.h>.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top