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