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

개요

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

standards(7)

Standards, Environments, Macros, Character Sets, and miscellany
                                                                  standards(7)



NAME
       standards,  ANSI,  C,  C++,  ISO,  POSIX, POSIX.1, POSIX.2, SUS, SUSv2,
       SUSv3, SUSv4, SVID, SVID3, XNS, XNS4, XNS5, XPG,  XPG3,  XPG4,  XPG4v2,
       XPG5,  XPG6,  XPG7  -  standards and specifications supported by Oracle
       Solaris 11.4

DESCRIPTION
       Oracle Solaris 11.4 conforms to The Open Group's UNIX V7 Product  Stan‐
       dard which means it supports IEEE Std 1003.1-2008, commonly referred to
       as POSIX.1-2008, UNIX V7, XPG7 or  SUSv4  (Single  UNIX  Specification,
       Version   4).   Note  that  POSIX.1-2008  is  simultaneously  IEEE  Std
       1003.1-2008 and The Open Group Technical Standard Base  Specifications,
       Version  7.  Note  that  SUSv4  incorporates  IEEE  Std 1003.1-2008 and
       ISO/IEC 9945:2009 (Portable Operating  System  Interface  (POSIX)  Base
       Specifications,  Issue 7). New code should be written using the UNIX V7
       standard. See the last section of this man page for historical informa‐
       tion  about which release of SunOS or Oracle Solaris first conformed to
       a particular standard and what to expect when running code compiled  on
       a previous version of Oracle Solaris.


       When  using  the Oracle Developer Studio 12.5 or 12.6 C compiler or the
       latest version of GCC or LLVM/Clang found in Oracle Solaris 11.4,  Ora‐
       cle Solaris 11.4 supports:

           o      The  ANSI  X3.159-1989  Programming  Language  - C (C89) and
                  ISO/IEC 9899:1990 Programming Language - C (C90) interfaces


           o      ISO/IEC 9899:1990 Amendment 1:1995: C Integrity (C95)


           o      ISO/IEC 9899:1999 Programming Languages - C (C99)


           o      INCITS/ISO/IEC 9899:2011 Programming Languages - C (C11)



       See the documentation for each compiler to learn how to  use  the  -std
       option to control which standard is followed when compiling C code.


       If  a C++ compiler such as Oracle Developer Studio, Oracle Solaris Stu‐
       dio, g++, or clang++ is installed, refer to  its  documentation  for  a
       discussion of which C++ standards are supported.


       With  regard to networking, the XNS4 specification is safe for use only
       in ILP32 (32-bit) environments and should not be used for LP64 (64-bit)
       application  environments. Use XNS5 or SUSv3 for LP64 (64-bit) applica‐
       tion environments because they have LP64-clean interfaces that are por‐
       table  across ILP32 and LP64 environments. Oracle Solaris 11.4 supports
       both the ILP32 and LP64 environments. Future releases of Oracle Solaris
       may only support LP64 environments.

   Conformance
       A default Oracle Solaris installation might require additional steps in
       order to be fully SUSv4 compliant.

   Packages
       The XPG7 Conformance group package and Oracle Developer Studio must  be
       installed.


       tab();  lw(3.67i)  lw(1.83i)  lw(3.67i)  lw(1.83i)  PackagePublisher  _
       pkg:/group/feature/xpg7solaris pkg:/developer/developerstudio-126/ccso‐
       larisstudio


   File systems
       Typically,  ZFS, the default root file system, is SUSv4 compliant. How‐
       ever, ZFS does not meet compliance requirements in the  following  edge
       case conditions:

           o      Updating ZFS file system capacity statistics.


           o      Modifying  or  removing  existing data with almost full file
                  system.



       Applications that expect strict SUSv4 compliance must  operate  on  UFS
       and would require setting up an UFS filesystem on a ZFS zvol device.

   Utilities
       If  the  behavior  required  by  POSIX.1-2008 conflicts with historical
       Solaris utility behavior, the original Solaris version of  the  utility
       is  unchanged  and a standard-conforming version of the utility is pro‐
       vided in /usr/xpg7/bin. See the end of this manual page for  historical
       detail about prior standards versions.


       An application that wants to use POSIX.1-2008 standard-conforming util‐
       ities 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. See the end of this manual  page  for
       historical detail about specifying directories for past versions.


       POSIX.1-2008, SUSv4


               1.     /usr/xpg7/bin


               2.     /usr/xpg6/bin


               3.     /usr/xpg4/bin


               4.     /usr/bin


               5.     Directory containing binaries for your compiler


               6.     Other  directories  containing  binaries  needed  by the
                      application






       Once the PATH/path variable is set, the getconf command can be used  to
       confirm the settings.


       When  an  application  uses the execlp() function, execvp() function or
       execvpe() function to execute a shell  file,  or  uses  the  system(3C)
       function,  the  shell  used  to interpret the shell file depends on the
       standard to which the calling program conforms. For  more  information,
       see the exec(2) man page.


       tab();  lw(2.58i)  lw(2.92i)  lw(2.58i)  lw(2.92i) StandardShell Used _
       POSIX.1-2008,   SUSv4,   XPG7/usr/xpg4/bin/sh   No   standard    speci‐
       fied/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 SUSv4), then  it  need  only
       define  the  appropriate feature test macro specified by that standard.
       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  application  must  define
       __EXTENSIONS__  either on the compile command line or within the appli‐
       cation source files.

   POSIX. 1-2008
       Applications that are intended to be conforming  POSIX.1-2008  applica‐
       tions  must  define  the  feature  test  macro _POSIX_C_SOURCE=200809L,
       before including any headers. Application writers must check the  stan‐
       dard  for  other  macros  that  can  be queried to determine if desired
       options are supported by the implementation.

   SUSv4
       To build or compile an application that conforms to the SUSv4  specifi‐
       cation,  the  application  must  define _XOPEN_SOURCE=700. Applications
       need not set the POSIX.1-2008 feature test macro if they  require  both
       SUS and POSIX functionality.

   1989 ANSI C, 1990 ISO C, 1999 ISO C, 2011 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. Refer to the C++ compiler  documenta‐
       tion  for  an  explanation  of the values this macro can have and which
       versions of the C++ standard are supported.


       C++ bindings are not defined for POSIX or SUSv4, 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 these specifications.

   Compilation with Oracle Developer Studio Compiler
       The  Oracle  Developer  Studio  12.5  and  12.6 C Compilers provide the
       INCITS/ISO/IEC 9899:2011 (C11) standard-conforming  compilation  system
       by default. They also provide the ISO/IEC 9899:1999 (C99) standard-con‐
       forming compilation system.


       If the compiler supports the redefine_extname pragma feature, the  Ora‐
       cle  Developer  Studio  C  Compiler  and  C++ Compiler define the macro
       __PRAGMA_REDEFINE_EXTNAME to indicate that they support  this  feature.
       If the previous condition is met, 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.


       When using the Oracle Developer Studio 12.5 or 12.6 C Compiler,  appli‐
       cations  conforming to POSIX.1-2008 should be compiled using the utili‐
       ties and flags indicated in the following table:


       tab(); lw(1.83i)  lw(1.83i)  lw(1.83i)  lw(1.83i)  lw(1.83i)  lw(1.83i)
       SpecificationCompiler/FlagsFeature         Test         Macros        _
       POSIX.1-2008c99_POSIX_C_SOURCE=200809L _ SUSv4c99_XOPEN_SOURCE=700


HISTORY
   History: POSIX Standards
       Oracle Solaris has a history of supporting IEEE Std 1003.1 and IEEE Std
       1003.2,  commonly  known as POSIX.1 and POSIX.2, respectively. The fol‐
       lowing table lists  each  version  of  these  standards  with  a  brief
       description  and  the  SunOS or Solaris release that first conformed to
       it.


       tab(); lw(1.38i)  lw(2.75i)  lw(1.38i)  lw(1.38i)  lw(2.75i)  lw(1.38i)
       POSIX  StandardDescriptionRelease  _  POSIX.1-1988system interfaces and
       headersSunOS  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       _
       POSIX.1-2008POSIX.1-2004 updateOracle Solaris 11.4


   History: X/Open and The Open Group Standards
       Oracle  Solaris  also  has  a  history  of supporting the X/Open Common
       Applications Environment (CAE) Portability Guide  Issue  3  (XPG3)  and
       Issue  4 (XPG4); Single UNIX Specification (SUS, also known as XPG4v2);
       Single UNIX Specification, Version 2 (SUSv2);  Single  UNIX  Specifica‐
       tion,  Version  3  (SUSv3);  and  Single  UNIX Specification, Version 4
       (SUSv4). 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();  lw(1.22i)  lw(3.06i)  lw(1.22i)  lw(1.22i)  lw(3.06i) lw(1.22i)
       SpecificationDescriptionRelease _ XPG3T{ superset of POSIX.1-1988  con‐
       taining   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 interfacesSolaris
       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  _  SUSv3
       (XPG6)same   as   POSIX.1-2001Solaris   10   _   SUSv4   (XPG7)same  as
       POSIX.1-2008Solaris 11.4


   History: Other
       Solaris releases 7 through Oracle Solaris 11.4 support both  the  ILP32
       and  LP64 environments. Future releases of Oracle Solaris may only sup‐
       port LP64 environments.


       Solaris releases 2.0 through Oracle Solaris 11.4 support the interfaces
       specified  by the System V Interface Definition, Third Edition, Volumes
       1 through 4 (SVID3). Note that, since the developers of this specifica‐
       tion  (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 conformance
       to this specification.


       Solaris releases 7 through 10 were  branded  to  conform  to  The  Open
       Group's  UNIX 98 Product Standard. Solaris 10 through Oracle Solaris 11
       were branded to conform to The Open Group's UNIX 03 Product Standard.

   History: Utilities
       If the behavior required by POSIX.2, POSIX.2a, XPG4, SUS, or SUSv2 con‐
       flicted  with historical Solaris utility behavior, the original Solaris
       version of the utility was unchanged and a standard-conforming  version
       of  the utility was provided in /usr/xpg4/bin. If the behavior required
       by POSIX.1-2001 or SUSv3 conflicted  with  historical  Solaris  utility
       behavior,  a  standard conforming version was 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 standard conforming
       version was 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, XPG6


               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 the execlp() function or execvp() function  to
       execute  a  shell file, or uses the system(3C) function, the shell used
       to interpret the shell file depends on the standard to which the  call‐
       ing program conforms. For more information, see the exec(2) man page.


       tab();  lw(4.13i) lw(1.38i) lw(4.13i) lw(1.38i) StandardShell Used _ T{
       POSIX.1  (1990-2008),  SUS,  SUSv2,  SUSv3,  SUSv4,  XPG4,  XPG5,  XPG6
       T}/usr/xpg4/bin/sh _ POSIX.1 (1988), SVID3, XPG3/usr/bin/sh


   History: Feature Test Macros
       As  noted  above, feature test macros are used by applications to indi‐
       cate additional sets of features that are desired beyond  those  speci‐
       fied  by  the  C  standard.  The  following sections outline historical
       information about POSIX versions  prior  to  POSIX.1-2008,  X/Open  CAE
       prior to SUSv4, and SVID3.

   POSIX
       The following table lists the feature test macros for prior versions of
       POSIX:


       tab(); cw(1.38i) cw(4.13i) lw(1.38i)  lw(4.13i)  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


   X/Open CAE
       The  following  table lists the guidelines for prior versions of X/Open
       CAE specifications:


       tab(); lw(1.38i) lw(4.13i)  lw(1.38i)  lw(4.13i)  SpecificationInstruc‐
       tions   _   XPG3T{   The  application  must  define  _XOPEN_SOURCE.  If
       _XOPEN_SOURCE is defined with a value, the value must be less than 500.
       T}   _  XPG4T{  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.  T} _ SUS (XPG4v2)T{ 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.  T} _ SUSv2T{
       The application must define _XOPEN_SOURCE=500.  T} _ SUSv3T{ The appli‐
       cation must define _XOPEN_SOURCE=600.  T}


   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 completed.

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



Oracle Solaris 11.4               28 Jan 2019                     standards(7)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3