*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> stdsyms (5)              
Title
Content
Arch
Section
 

f(2)

Contents


 stdsyms(5)                                                       stdsyms(5)




 NAME    [Toc]    [Back]
      stdsyms - description of "named defines" and other specifications for
      name space from HP-UX header files.

 DESCRIPTION    [Toc]    [Back]
      stdsyms is a description of "named defines" and other specifications
      that must be set by the application to obtain the appropriate name
      space 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, and XPG4 standards 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 documentation 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
                     pre-processor (/opt/langtools/lib/cpp.ansi) 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 smallest 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.

           _POSIX_SOURCE
                     As documented in the IEEE POSIX.1 standard, the



 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003






 stdsyms(5)                                                       stdsyms(5)




                     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.  This macro is also automatically
                     defined in the XPG4 X/Open namespace (that is, whenever
                     _XOPEN_SOURCE and _XPG4 are defined without defining
                     _XPG2 or _XPG3).

           _XOPEN_SOURCE
                     As documented in the XPG3 and XPG4 standards, 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 has 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 XPG3.  To request other versions of
                     the X/Open namespace, define _XPG2 or _XPG4 in
                     conjunction with _XOPEN_SOURCE.

           _AES_SOURCE
                     As documented in the "OSF AES/OS" standard, the
                     programmer is required to define the _AES_SOURCE
                     feature test macro to obtain OSF functionality.  This
                     feature test macro can be defined, either by using
                     compiler options (-D_AES_SOURCE) or by using #define
                     directives in the source files before any #include
                     directives.  Although the AES does not specify any
                     namespace pollution rules, the other standards have
                     instituted such rules.  Therefore HP-UX provideds a



 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003






 stdsyms(5)                                                       stdsyms(5)




                     clean namespace whenever _AES_SOURCE is defined.

           _HPUX_SOURCE
                     The programmer can define the _HPUX_SOURCE feature test
                     macro to obtain the HP-UX namespace and complete HP-UX
                     functionality.  Note that the HP-UX namespace is
                     currently a superset of all of the above mentioned
                     namespaces.  When using the compatibility-mode compiler
                     (cc(1) without the -Aa option), the HP-UX namespace is
                     provided by default.  The programmer must request one
                     of the other namespaces as described above to obtain
                     the appropriate subset of the HP-UX namespace.  When
                     using the strict ANSI-C-mode compiler (cc -Aa), the
                     programmer must specifically request a broader
                     namespace.

                     The _HPUX_SOURCE feature test macro can be defined,
                     either by using compiler options (-D_HPUX_SOURCE) or by
                     using #define directives in the source files before any
                     #include directives.

      The following is a list of miscellaneous feature test macros that
      provide various additional features.

           __cplusplus
                     This symbol is automatically defined by the HP C++
                     compiler.  Defining this macro enables the C++ function
                     prototypes in system header files.

                     The default namespace for HP C++ is the ANSI-C
                     namespace.  To obtain another namespace define the
                     appropriate feature test macro.

                     HP C++ uses the ANSI-C preprocessor by default. To get
                     the compatibility mode preprocessor, use the -Ac option
                     to cc(1).  The compatibility mode preprocessor uses the
                     HP-UX namespace (_HPUX_SOURCE).

           _POSIX1_1988
                     This feature test macro should be defined when the
                     POSIX.1-1988 namespace is required.  It should be used
                     in conjunction with the _POSIX_SOURCE macro if the
                     default POSIX.1-1990 namespace is not desired.

                     This macro is defined automatically whenever
                     _AES_SOURCE or _XPG3 is requested.

           _XPG2     The _XPG2 macro can be defined when using the
                     compatibility-mode compiler to obtain XPG2
                     functionality.  This provides XPG2 specified function
                     declarations and macros in the HP-UX namespace.  Note



 Hewlett-Packard Company            - 3 -   HP-UX 11i Version 2: August 2003






 stdsyms(5)                                                       stdsyms(5)




                     that the values obtained from most of the macros
                     available when using this option are now available at
                     run-time via the pathconf(), fpathconf(), and sysconf()
                     system calls (see pathcon
).  Use of
                     the _XPG2 macro is strongly discouraged because it
                     gives access to obsolete functionality.  Note that no
                     function prototypes are provided when using this
                     feature test macro.

           _XPG3     The _XPG3 feature test macro is defined automatically
                     if the programmer has requested the XPG3 namespace
                     (i.e., defined _XOPEN_SOURCE, but not some other
                     conflicting namespace such as _XPG2 or _XPG4).

           _XPG4     The _XPG4 feature test macro is provided so that the
                     programmer can obtain the XPG4 namespace, since it
                     differs slightly from the _XPG3 namespace.  In order to
                     obtain the XPG4 namespace, the programmer must define
                     both the _XOPEN_SOURCE and _XPG4 feature test macros.
                     The _XOPEN_SOURCE and _XPG4 feature test macros can be
                     defined, either by using compiler options (-
                     D_XOPEN_SOURCE -D_XPG4) or by using #define directives
                     in the source files before any #include directives.

           _SVID2    The _SVID2 macro can be defined when using the
                     compatibility mode compiler to obtain SVID2 function
                     return types in the HP-UX namespace.  The default
                     return types of many functions have since been changed
                     in the HP-UX operating system to align with the ANSI-C,
                     POSIX, X/Open, and OSF standards.

           _SVID3    The SVID3 macro can be defined to obtain SVID3 function
                     prototypes.  The compiler flag, -D_SVID3, needs to be
                     defined to indicate that an application is written to
                     meet SVID3 requirements.  At the time the function
                     prototypes were introduced in ANSI C, the functions
                     exposed by this flag were only defined in SVID3.

           _CLASSIC_TYPES
                     The _CLASSIC_TYPES macro can be defined by the
                     programmer to obtain pre-7.0 style function return
                     types and structure element types.  This macro has been
                     provided only as a transition aid when migrating from
                     the pre-7.0 version of HP-UX to standards-based HP-UX.
                     Use of this macro is strongly discouraged as this
                     functionality will be removed in a future release of
                     HP-UX.  Note that no function prototypes are provided
                     when using this feature test macro.

 SEE ALSO    [Toc]    [Back]
      cc(1), cpp(1), pathconf(2), sysconf(2).


 Hewlett-Packard Company            - 4 -   HP-UX 11i Version 2: August 2003
[ Back ]
      
      
 Similar pages
Name OS Title
pathfind IRIX search for named file in named directories
mouse IRIX mouse specifications
pckeyboard IRIX keyboard specifications
keyboard IRIX keyboard specifications
pcmouse IRIX mouse specifications
library-specs OpenBSD shared library name specifications
packages-specs OpenBSD binary package names specifications
vol_pattern Tru64 Logical Storage Manager (LSM) search specifications
XStandards IRIX X Consortium Standards and X Project Team Specifications
vol_pattern HP-UX VERITAS Volume Manager disk group search specifications
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service