Standards

Each function description begins with a table to indicate the standards/extensions, language support, and dependencies.
Standards / Extensions C or C++ Dependencies
     

See the tables below for more details.

Standards and extensions

The "Standards / Extensions" column describes the supported standards and extensions.
Note: By indicating a standard, we refer to the origin of the function, not necessarily the compliance. For example, functions that are enriched by features from XPG4 have XPG4 listed.
Standards / Extensions Refer to
ISO C ISO/IEC 9899:1990(E)
ISO C Amendment A subset of the ISO/IEC 9899:1990/Amendment 1:1993(E)
POSIX.1 ISO/IEC 9945-1:1990/IEEE POSIX 1003.1-1990
POSIX.1a A subset of IEEE POSIX 1003.1a, Draft 7, May 1992
POSIX.2 IEEE Portable Operating System Interface (POSIX) Part 2, P1003.2 draft 12
POSIX.4a A subset of IEEE POSIX 1003.4a, Draft 6, Feb. 26,1992
POSIX.4b A subset of IEEE 1003.4b
BSD 4.3 Berkeley Software Distribution (BSD) 4.3 standard (also known as Berkeley sockets)
XPG4 X/Open Common Applications Environment Specification, System Interfaces and Headers, Issue 4
XPG4.2 X/Open Common Applications Environment Specification, System Interfaces and Headers, Issue 4, Version 2
SAA IBM® Systems Application Architecture® Common Programming Interface (SAA CPI) Level 2 definition of the C language
C Library Functions that are extensions to the runtime library, before the Language Environment® product
Language Environment Functions that are extensions to the conventional standards
z/OS® UNIX Functions that provide z/OS UNIX support beyond the defined standards
Single UNIX Specification, Version 2 IEEE Std 1003.1-1997
Single UNIX Specification, Version 3 IEEE Std 1003.1-2001
ISO/ANSI C++ ISO/ANSI C++ Standard (ISO/IEC 14882:1998(E))
RFC2292 Advanced Sockets API for IPv6 (draft-ietf-ipngwg-rfc2292bis-06.txt, dated February 25, 2002)
Note: Not all of the support described in this draft is available on z/OS.
RFC2553 Basic socket interface extensions for IPv6 (draft-ietf-ipngwg-rfc2253bis-05.txt, dated February 2002)
Note: Not all of the support described in this draft is available on z/OS.
RFC3678 Socket interface extensions for multicast source filters
ANSI/IEEE Standard P754 IEEE standard for binary floating-point arithmetic
C99 ISO/IEC 9899:1999(E)
C/C++ DFP
  1. ISO/IEC TR24732 -- Extensions for the programming language C to support decimal floating point arithmetic
  2. ISO/IEC TR24733 -- Extensions for the programming language C++ to support decimal floating point arithmetic
C++ TR1 C99 ISO/IEC DTR 19768 - Draft Technical Report on C++ library Extensions, chapter 8, C compatibility
C11 ISO/IEC 9899:2011(E)
Runtime library extensions Additional functions to the runtime library

These standards do have some overlap, as illustrated in Figure 1.

Figure 1. Overlap of C Standards and Extensions
Overlap of C Standards and Extensions

The C library contains several functions that are extensions to the SAA CPI Level 2 definition. These library functions are available only with the runtime library extensions. As indicated, some of the stub routines for the extensions are available if they are ISO C/C++ compliant. They are made available for compatibility with Version 1; they may not be available in the future. (Within runtime libraries, a stub routine is a routine that contains the minimum lines of code required to locate a given routine at run time.)

Many of the symbols that are defined in headers are “protected” by a feature test macro. For information on the relationships between feature test macros and the standards, see Feature test macros.

Language support

The "C or C++" column indicates the language support for each function.

C or C++ Description
C only The function is supported by the IBM z/OS C compiler only
C++ only The function is supported by the IBM z/OS C++ compiler only.
both The function is supported by both the IBM z/OS C and the IBM z/OS C++ compilers.

Dependencies

The "Dependencies" column indicates the dependencies that are identified for each function. If the dependencies are not met, then the function fails, and returns an errno of EMVSNORTL. Functions defined by the standards that cannot fail, will cause abnormal termination and return Language Environment condition CEE5001.
Dependencies Description
POSIX(ON)
  • POSIX(ON) required refers to whether the enclave can run with the POSIX semantics.

    POSIX is an application characteristic that is maintained at the enclave level. After you have established the characteristic during enclave initialization, you cannot change it.

    When you set POSIX to ON, you can use functions that are unique to POSIX, such as pthread_create().

    One of the effects of POSIX(ON) is the enablement of POSIX signal handling semantics, which interact closely with the z/OS Language Environment condition handling semantics. Where ambiguities exist between ISO C/C++ and POSIX semantics, the POSIX runtime setting indicates that the POSIX semantics will be followed.

OS/390® V2R6  
OS/390 V2R7  
OS/390 V2R8  
OS/390 V2R9  
OS/390 V2R10  
z/OS V1R1  
z/OS V1R2  
z/OS V1R3  
z/OS V1R4  
z/OS V1R5  
z/OS V1R6  
z/OS V1R7  
z/OS V1R8  
z/OS V1R9  
AMODE 64