[comp.std.unix] headers and reserved symbols

karl@IMA.IMA.ISC.COM (Karl Heuer) (02/01/90)

From: karl@IMA.IMA.ISC.COM (Karl Heuer)

In ANSI C, several symbols are reserved only when their associated header is
included.  For example, if a program does not use <stdlib.h>, then it could
use the symbol EXIT_SUCCESS as a local variable and still be strictly
conforming.  (Hence, the implementation must not have one header include
another.)

Is this also true of POSIX?  I thought 1003.1 used pretty much the same
namespace rules as X3J11, but I can't find an explicit guarantee in the Green
Book.  In particular, given that <sys/types.h> reserves the entire *_t
namespace, is it safe for an application to create such a typedef in a module
that does not require that header?

Karl W. Z. Heuer (karl@haddock.isc.com or ima!haddock!karl), The Walking Lint

Volume-Number: Volume 18, Number 33

donn@hpfcrn.hp.com (Donn Terry) (02/04/90)

From: Donn Terry <donn@hpfcrn.hp.com>

>From: karl@IMA.IMA.ISC.COM (Karl Heuer)

>In ANSI C, several symbols are reserved only when their associated header is
>included.  For example, if a program does not use <stdlib.h>, then it could
>use the symbol EXIT_SUCCESS as a local variable and still be strictly
>conforming.  (Hence, the implementation must not have one header include
>another.)

>Is this also true of POSIX?  I thought 1003.1 used pretty much the same
>namespace rules as X3J11, but I can't find an explicit guarantee in the Green
>Book.  In particular, given that <sys/types.h> reserves the entire *_t
>namespace, is it safe for an application to create such a typedef in a module
>that does not require that header?

>Karl W. Z. Heuer (karl@haddock.isc.com or ima!haddock!karl), The Walking Lint

>Volume-Number: Volume 18, Number 33

There is an ambiguity here in 1003.1, and the interpretations committee
is working on it.  It is also being worked on in 1003.1a, and the current
state of that draft document is that the namespaces are separate like
ANSI C.

I won't presume to predict the interpretations commitee's resolution.

Donn Terry
(As an individual)

Volume-Number: Volume 18, Number 42