HP-UX Reference (11i v3 07/02) - 5 Miscellaneous Topics (vol 9)
s
stdsyms(5) stdsyms(5)
NAME
stdsyms - description of named defines and other specifications for namespace from HP-UX header files
DESCRIPTION
stdsyms is a description of "named defines" and other specifications that must be set by the application to
obtain the appropriate namespace from the HP-UX header files.
HP-UX header files are organized in a manner that allows for only a subset of the symbols available in that
header file to be visible to an application that conforms to a specific standard. The ANSI-C, POSIX.1,
POSIX.2, XPG4 and subsequent enhanced versions of ANSI-C/POSIX/XPG each reserve a certain set of
symbols for that standard’s namespace. In addition, the HP-UX implementation of XPG3 and the "OSF
AES/OS" provides for a clean namespace although this is not a specific requirement of those standards.
The following rules apply in determining what symbols are reserved for any standard. These symbols are
reserved for the standard and for use by the implementation, and must be either avoided altogether, or
used exactly as defined by the specified standard.
• All symbols defined by the desired standard are reserved. Refer to the appropriate standards documen-
tation for a complete list of reserved symbols.
• All symbols beginning with an underscore followed by another underscore or an uppercase letter are
reserved for the implementation.
• All external identifiers beginning with an underscore are reserved for the implementation.
The following is a list of feature test macros which must be defined to obtain the appropriate namespace
from the header files.
__STDC__ This symbol is automatically defined by the ANSI-C preprocessor and is
automatically defined when specifying an ANSI-C compile (cc -Aa). Using the
strict ANSI option -Aa requests a pure ANSI-C namespace, which is the smal-
lest subset of the HP-UX namespace available. The -Aa option also enables the
inclusion of ANSI-C-style function prototypes for increased type checking. Note
that the default namespace when using the -Aa option is the ANSI-C
namespace; therefore a broader namespace must be requested if it is desired.
__STDC_VERSION__ This symbol is automatically defined by the ANSI-C preprocessor on some imple-
mentations. If defined, it indicates the version of the standard it is complying
with.
_POSIX_SOURCE As documented in the IEEE POSIX.1 standard, the programmer is required to
define the _POSIX_SOURCE
feature test macro to obtain the POSIX.1
namespace and POSIX.1 functionality. This feature test macro can be defined,
either by using compiler options (
-D_POSIX_SOURCE
) or by using #define
directives in the source files before any #include directives. Note that the
default POSIX namespace is the POSIX.1-1990 namespace. It is necessary to
define the _POSIX1_1988 feature test macro in addition to the
_POSIX_SOURCE macro in order to obtain the POSIX.1-1988 namespace.
_POSIX_C_SOURCE As documented in the IEEE POSIX.2 standard, the programmer is required to
define the _POSIX_C_SOURCE feature test macro with a value of 2 to obtain
the POSIX.1 and POSIX.2 namespaces and functionality. This feature test
macro can be defined, either by using compiler options
(-D_POSIX_C_SOURCE=2) or by using #define directives in the source
files before any #include directives.
_XOPEN_SOURCE As documented in the X/Open Portability Guide (XPG), the programmer is
required to define the
_XOPEN_SOURCE feature test macro to obtain X/Open
functionality. This feature test macro can be defined, either by using compiler
options (-D_XOPEN_SOURCE) or by using #define directives in the source
files before any #include directives. Although XPG3 does not specify any
namespace pollution rules, XPG4 and its subsequent versions have instituted
such rules. Therefore, the HP-UX operating system provides clean namespaces
whenever _XOPEN_SOURCE is defined.
The current default X/Open namespace is that corresponding to XPG4. Broader
namespace can be requested by setting _XOPEN_SOURCE to a value as
specified by the standard document.
494 Hewlett-Packard Company − 1 − HP-UX 11i Version 3: February 2007