standards(5) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

standards(5)

Standards, Environments, and Macros                               standards(5)



NAME
       standards,  ANSI,  C,  C++,  ISO,  POSIX, POSIX.1, POSIX.2, SUS, SUSv2,
       SUSv3, SVID, SVID3, XNS, XNS4, XNS5, XPG, XPG3, XPG4,  XPG4v2  -  stan‐
       dards and specifications supported by Oracle Solaris

DESCRIPTION
       Oracle  Solaris  supports IEEE Std 1003.1 and IEEE Std 1003.2, commonly
       known as POSIX.1 and POSIX.2, respectively. The following  table  lists
       each  version of these standards with a brief description and the SunOS
       or Solaris release that first conformed to it.




       tab(); cw(1.25i) cw(3.3i) cw(.95i) lw(1.25i) lw(3.3i)  lw(.95i)  POSIX
       StandardDescriptionRelease _ POSIX.1-1988system interfaces and head‐
       ersSunOS  4.1  _  POSIX.1-1990POSIX.1-1988   updateSolaris   2.0   _
       POSIX.1b-1993realtime  extensionsSolaris  2.4 _ POSIX.1c-1996threads
       extensionsSolaris 2.6 _ POSIX.2-1992shell and utilitiesSolaris 2.5 _
       POSIX.2a-1992interactive    shell    and   utilitiesSolaris   2.5   _
       POSIX.1-2001T{     POSIX.1-1990,     POSIX.1b-1993,     POSIX.1c-1996,
       POSIX.2-1992,    and    POSIX.2a-1992    updates    T}Solaris   10   _
       POSIX.1-2004POSIX.1-2001 updateOracle Solaris 11



       Oracle Solaris also  supports the X/Open Common  Applications  Environ‐
       ment  (CAE) Portability Guide Issue 3 (XPG3) and Issue 4 (XPG4); Single
       UNIX Specification (SUS, also known as XPG4v2); Single UNIX  Specifica‐
       tion,  Version  2  (SUSv2);  and  Single  UNIX Specification, Version 3
       (SUSv3). Both XPG4 and SUS include Networking Services Issue 4  (XNS4).
       SUSv2 includes Networking Services Issue 5 (XNS5).


       The  following  table  lists  each  X/Open  specification  with a brief
       description and the SunOS or Solaris release that  first  conformed  to
       it.




       tab();  cw(1.29i)  cw(3.27i)  cw(.93i)  cw(1.29i)  cw(3.27i)  cw(.93i)
       X/Open CAE _
        SpecificationDescriptionRelease _ XPG3T{ superset  of  POSIX.1-1988
       containing  utilities  from  SVID3  T}SunOS  4.1 _ XPG4T{ superset of
       POSIX.1-1990, POSIX.2-1992, and POSIX.2a-1992 containing extensions  to
       POSIX  standards from XPG3 T}Solaris 2.4 _ SUS (XPG4v2)T{ superset of
       XPG4 containing historical BSD interfaces widely used by common  appli‐
       cation   packages   T}Solaris   2.6  _  XNS4sockets  and  XTI  inter‐
       facesSolaris 2.6 _  SUSv2T{  superset  of  SUS  extended  to  support
       POSIX.1b-1993, POSIX.1c-1996, and ISO/IEC 9899 (C Standard) Amendment 1
       T}Solaris 7 _ XNS5T{ superset  and  LP64-clean  derivative  of  XNS4.
       T}Solaris 7 _ SUSv3same as POSIX.1-2001Solaris 10



       The  XNS4 specification is safe for use only in ILP32 (32-bit) environ‐
       ments and should not be used for  LP64  (64-bit)  application  environ‐
       ments.  Use  XNS5  or  SUSv3, which have LP64-clean interfaces that are
       portable across ILP32 and LP64 environments. Solaris releases 7 through
       Oracle Solaris 11 support both the ILP32 and LP64 environments.


       Solaris  releases 7 through 10 have been branded to conform to The Open
       Group's UNIX 98 Product Standard. Solaris 10 through Oracle Solaris  11
       have  been branded to conform to The Open Group's UNIX 03 Product Stan‐
       dard.


       Solaris releases 2.0 through Oracle Solaris 11 support  the  interfaces
       specified  by the System V Interface Definition, Third Edition, Volumes
       1 through 4 (SVID3). Note, however, that since the developers  of  this
       specification (UNIX Systems Laboratories) are no longer in business and
       since this specification defers to POSIX and X/Open CAE specifications,
       there is some disagreement about what is currently required for confor‐
       mance to this specification.


       When Oracle Solaris Studio 12.4 C Compiler is installed, Oracle Solaris
       11  supports  the ANSI X3.159-1989 Programming Language - C and ISO/IEC
       9899:1990 Programming Language - C (C) interfaces.


       When Oracle Solaris Studio 12.4 C Compiler is installed, Oracle Solaris
       11 supports ISO/IEC 9899:1990 Amendment 1:1995: C Integrity.


       When Oracle Solaris Studio 12.4 C Compiler is installed, Oracle Solaris
       11 supports ISO/IEC 9899:1999 Programming Languages - C.


       When Oracle Solaris Studio  12.4  C++  Compiler  is  installed,  Oracle
       Solaris  Studio  12.4  C++ 5.14 supports ISO/IEC 14882:1998 Programming
       Languages - C++. Unsupported features of that standard are described in
       the compiler README file.

   Utilities
       If the behavior required by POSIX.2, POSIX.2a, XPG4, SUS, or SUSv2 con‐
       flicts with historical Solaris utility behavior, the  original  Solaris
       version  of  the  utility is unchanged; a new version that is standard-
       conforming has been provided in /usr/xpg4/bin. If the behavior required
       by  POSIX.1-2001  or  SUSv3  conflicts  with historical Solaris utility
       behavior, a new version that is standard-conforming has  been  provided
       in  /usr/xpg4/bin  or  in  /usr/xpg6/bin.  If  the behavior required by
       POSIX.1-2001 or SUSv3 conflicts with POSIX.2, POSIX.2a, SUS, or  SUSv2,
       a  new  version  that is SUSv3 standard-conforming has been provided in
       /usr/xpg6/bin.


       An application that wants to use standard-conforming utilities must set
       the  PATH  (sh(1)  or  ksh(1)) or path (csh(1)) environment variable to
       specify the directories listed below in the order specified to get  the
       appropriate utilities:

       SVID3, XPG3


               1.     /usr/bin

               2.     directory containing binaries for your compiler

               3.     other  directories  containing  binaries  needed  by the
                      application


       POSIX.2, POSIX.2a, SUS, SUSv2, XPG4


               1.     /usr/xpg4/bin

               2.     /usr/bin

               3.     directory containing binaries for your compiler

               4.     other directories  containing  binaries  needed  by  the
                      application


       POSIX.1-2001, SUSv3


               1.     /usr/xpg6/bin

               2.     /usr/xpg4/bin

               3.     /usr/bin

               4.     directory containing binaries for your compiler

               5.     other  directories  containing  binaries  needed  by the
                      application



       When an application uses execlp() or execvp() (see exec(2)) to  execute
       a shell file, or uses system(3C), the shell used to interpret the shell
       file depends on the standard to which the caller conforms:




       tab(); cw(4.33i) cw(1.17i) lw(4.33i) lw(1.17i) StandardShell  Used  _
       T{  1989  ANSI  C,  1990  ISO  C, 1999 ISO C, POSIX.1 (1990-2001), SUS,
       SUSv2, SUSv3, XPG4 T}/usr/xpg4/bin/sh T{ POSIX.1 (1988), SVID3,  XPG3,
       no standard specified T}/usr/bin/sh


   Feature Test Macros
       Feature  test  macros  are  used by applications to indicate additional
       sets of features that are desired beyond those specified by the C stan‐
       dard.  If an application uses only those interfaces and headers defined
       by a particular standard (such as POSIX or X/Open CAE),  then  it  need
       only  define the appropriate feature test macro specified by that stan‐
       dard. If the application is using interfaces and headers not defined by
       that  standard,  then  in addition to defining the appropriate standard
       feature test  macro,  it  must  also  define  __EXTENSIONS__.  Defining
       __EXTENSIONS__  provides  the application with access to all interfaces
       and headers not in conflict with the specified standard.  The  applica‐
       tion  must  define __EXTENSIONS__ either on the compile command line or
       within the application source files.

   1989 ANSI C, 1990 ISO C, 1999 ISO C
       No feature test macros need to be defined to indicate that an  applica‐
       tion is a conforming C application.

   ANSI/ISO C++
       ANSI/ISO  C++  does not define any feature test macros. If the standard
       C++ announcement macro __cplusplus, predefined by the compiler based on
       compiler defaults and command-line options, is set to a value of 199711
       or greater, the compiler operates in a standard-conforming mode,  indi‐
       cating  C++  standards  conformance. The value 199711 indicates confor‐
       mance to ISO/IEC 14882:1998, as required by that standard.   (As  noted
       above, conformance to the standard is incomplete.)


       C++  bindings  are  not  defined for POSIX or X/Open CAE, so specifying
       feature  test  macros  such  as  _POSIX_SOURCE,  _POSIX_C_SOURCE,   and
       _XOPEN_SOURCE  can  result  in  compilation  errors  due to conflicting
       requirements of standard C++ and those specifications.

   POSIX
       Applications that are intended to be  conforming  POSIX.1  applications
       must  define  the  feature test macros specified by the standard before
       including any headers.  For the standards  listed  below,  applications
       must  define  the feature test macros listed.  Application writers must
       check the corresponding standards for other macros that can be  queried
       to determine if desired options are supported by the implementation.




       tab();  cw(2.75i) cw(2.75i) lw(2.75i) lw(2.75i) POSIX StandardFeature
       Test  Macros  _  POSIX.1-1990_POSIX_SOURCE  _  T{   POSIX.1-1990   and
       POSIX.2-1992    C-Language   Bindings   Option   T}_POSIX_SOURCE   and
       _POSIX_C_SOURCE=2        POSIX.1b-1993_POSIX_C_SOURCE=199309L        _
       POSIX.1c-1996_POSIX_C_SOURCE=199506L                                 _
       POSIX.1-2001_POSIX_C_SOURCE=200112L


   SVID3
       The SVID3 specification does not specify any  feature  test  macros  to
       indicate  that  an  application  is written to meet SVID3 requirements.
       The SVID3 specification was written before  the  C  standard  was  com‐
       pleted.

   X/Open CAE
       To  build  or compile an application that conforms to one of the X/Open
       CAE specifications, use the following guidelines. Applications need not
       set  the  POSIX  feature test macros if they require both CAE and POSIX
       functionality.

       XPG3            The   application   must   define   _XOPEN_SOURCE.   If
                       _XOPEN_SOURCE  is  defined with a value, the value must
                       be less than 500.


       XPG4            The  application  must  define  _XOPEN_SOURCE  and  set
                       _XOPEN_VERSION=4.  If  _XOPEN_SOURCE  is defined with a
                       value, the value must be less than 500.


       SUS (XPG4v2)    The  application  must  define  _XOPEN_SOURCE  and  set
                       _XOPEN_SOURCE_EXTENDED=1.  If  _XOPEN_SOURCE is defined
                       with a value, the value must be less than 500.


       SUSv2           The application must define _XOPEN_SOURCE=500.


       SUSv3           The application must define _XOPEN_SOURCE=600.


   Compilation
       The  Oracle  Solaris  Studio  12.4  C  Compiler  provides  the  ISO/IEC
       99899:1999 (1999 ISO C Language) standard-conforming compilation system
       and the c99 utility.


       When ld is used directly to link  applications,  /usr/lib/values-xpg4.o
       must be specified on any link/load command line, unless the application
       is POSIX.1-2001- or SUSv3-conforming, in  which  case  /usr/lib/values-
       xpg6.o  must  be specified on any link/load compile line. When cc or CC
       is used to link  applications,  the  compiler  automatically  adds  the
       appropriate  file. The preferred way to build applications, however, is
       described in the table below.


       An XNS4- or XNS5-conforming application must  include  -l  XNS  on  any
       link/load  command line in addition to defining the feature test macros
       specified for SUS or SUSv2, respectively.


       If the compiler supports the redefine_extname pragma feature (the  Ora‐
       cle  Solaris  Studio 12.4 C Compiler and the Oracle Solaris Studio 12.4
       C++ Compiler define the  macro  __PRAGMA_REDEFINE_EXTNAME  to  indicate
       that  they support this feature), then the standard headers use #pragma
       redefine_extname directives to properly map function names onto library
       entry point names. This mapping provides full support for ISO C, POSIX,
       and X/Open namespace reservations.


       If this pragma feature is not supported by the  compiler,  the  headers
       use the #define directive to map internal function names onto appropri‐
       ate library entry point names. In this  instance,  applications  should
       avoid  using  the  explicit  64-bit  file  offset symbols listed on the
       lf64(5) manual page, since these names are used by  the  implementation
       to name the alternative entry points.


       When using the Oracle Solaris Studio 12.4 C Compiler, applications con‐
       forming to the specifications listed above should be compiled using the
       utilities and flags indicated in the following table:

         Specification            Compiler/Flags         Feature Test Macros
         _________________________________________________________________________
         1989 ANSI C and 1990 ISO C    c89                none
         _________________________________________________________________________
         1999 ISO C                    c99                none
         _________________________________________________________________________
         SVID3                         cc -Xt -xc99=none  none
         _________________________________________________________________________
         POSIX.1-1990                  c89                _POSIX_SOURCE
         _________________________________________________________________________
         POSIX.1-1990 and POSIX.2-1992 c89                _POSIX_SOURCE  and
           C-Language Bindings Option                     POSIX_C_SOURCE=2
         _________________________________________________________________________
         POSIX.1b-1993                 c89                _POSIX_C_SOURCE=199309L
         _________________________________________________________________________
         POSIX.1c-1996                 c89                _POSIX_C_SOURCE=199506L
         _________________________________________________________________________
         POSIX.1-2001                  c99                _POSIX_C_SOURCE=200112L
         _________________________________________________________________________
         POSIX.1c-1996                 c89                _POSIX_C_SOURCE=199506L
         _________________________________________________________________________
         CAE XPG3                      cc -Xa -xc99=none  _XOPEN_SOURCE
         _________________________________________________________________________
         CAE XPG4                      c89                _XOPEN_SOURCE and
                                                          _XOPEN_VERSION=4
         _________________________________________________________________________
         SUS (CAE XPG4v2)              c89                _XOPEN_SOURCE and
           (includes XNS4)                                 _XOPEN_SOURCE_EXTENDED=1
         _________________________________________________________________________
         SUSv2 (includes XNS5)         c89                _XOPEN_SOURCE=500
         _________________________________________________________________________
         SUSv3                         c99                _XOPEN_SOURCE=600




       For  platforms  supporting  the  LP64 (64-bit) programming environment,
       SUSv2-conforming LP64 applications using XNS5 library calls  should  be
       built with command lines of the form:

         c89 $(getconf XBS5_LP64_OFF64_CFLAGS) -D_XOPEN_SOURCE=500 \
             $(getconf XBS5_LP64_OFF64_LDFLAGS) foo.c -o foo \
             $(getconf XBS5_LP64_OFF64_LIBS) -lxnet



       Similar SUSv3-conforming LP64 applications should be built with command
       lines of the form:

         c99 $(getconf POSIX_V6_LP64_OFF64_CFLAGS) -D_XOPEN_SOURCE=600 \
             $(getconf POSIX_V6_LP64_OFF64_LDFLAGS) foo.c -o foo \
             $(getconf POSIX_V6_LP64_OFF64_LIBS) -lxnet


   SUSv3
       c99                         _XOPEN_SOURCE=600


SEE ALSO
       csh(1), ksh(1), sh(1), exec(2),  sysconf(3C),  system(3C),  environ(5),
       lf64(5)



SunOS 5.11                        25 Mar 2015                     standards(5)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3