Standards
Each function description begins with a table to indicate the standards/extensions, language support, and dependencies. See the table below for more details:
Standards / Extensions | C or C++ | Dependencies |
---|---|---|
ISO C | C only | POSIX(ON) |
ISO C Amendment | C++ only | OS/390 V2R6 |
POSIX.1 | both | OS/390 V2R7 |
POSIX.1a | OS/390 V2R8 | |
POSIX.2 | OS/390 V2R9 | |
POSIX.4a | OS/390 V2R10 | |
POSIX.4b | z/OS V1R1 | |
BSD 4.3 | z/OS V1R2 | |
XPG4 | z/OS V1R3 | |
XPG4.2 | z/OS V1R4 | |
SAA | z/OS V1R5 | |
C Library | z/OS® V1R6 | |
Language Environment® | z/OS V1R7 | |
z/OS UNIX | z/OS V1R8 | |
Single UNIX Specification, Version 2 | z/OS V1R9 | |
ISO/ANSI C++ | AMODE 64 | |
RFC2292 | ||
RFC2553 | ||
RFC3678 | ||
ANSI/IEEE Standard P754 | ||
C99 | ||
Single UNIX Specification, Version 3 | ||
C/C++ DFP | ||
C++ TR1 C99 |
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.
These are the standards referred to:
- Standards/extensions
- ISO C refers to ISO/IEC 9899:1990(E).
- ISO C Amendment refers to a subset of the ISO/IEC 9899:1990/Amendment 1:1993(E).
- POSIX
- POSIX.1 refers to ISO/IEC 9945-1:1990/IEEE POSIX 1003.1-1990.
- POSIX.1a refers to a subset of IEEE POSIX 1003.1a, Draft 7, May 1992.
- POSIX.2 refers to IEEE Portable Operating System Interface (POSIX) Part 2, P1003.2 draft 12.
- POSIX.4a refers to a subset of IEEE POSIX 1003.4a, Draft 6, Feb. 26,1992.
- XPG4 refers to X/Open Common Applications Environment Specification, System Interfaces and Headers, Issue 4.
- XPG4.2 refers to X/Open Common Applications Environment Specification, System Interfaces and Headers, Issue 4, Version 2.
- ISO/ANSI C++ refers to the ISO/ANSI C++ Standard (ISO/IEC 14882:1998(E)).
- RFC2553 refers to the 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.
- RFC2292 refers to the 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.
- C99 refers to ISO/IEC 9899:1999(E).
- Single UNIX Specification, Version 2 refers to IEEE Std 1003.1-1997.
- Single UNIX Specification, Version 3 refers to IEEE Std 1003.1-2001.
- Extensions refers to one of the following:
- SAA refers to the IBM® Systems Application Architecture® Common Programming Interface (SAA CPI) Level 2 definition of the C language.
- C Library refers to the functions that are extensions to the runtime library, before the Language Environment product.
- Language Environment refers to functions that are extensions to the conventional standards.
- z/OS UNIX refers to functions that provide z/OS UNIX support beyond the defined standards.
- C/C++ DFP refers to:
- ISO/IEC TR24732 -- Extensions for the programming language C to support decimal floating point arithmetic.
- ISO/IEC TR24733 -- Extensions for the programming language C++ to support decimal floating point arithmetic.
- C++ TR1 C99 refers to ISO/IEC DTR 19768 - Draft Technical Report on C++ library Extensions, chapter 8, C compatibility.
- Language support
C or C++ refers to whether the function is supported for the z/OS XL C compiler, the z/OS XL C++ compiler, or both.
- Dependencies Some functions have the following dependencies identified. 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 Environmen condition CEE5001.
- 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 ANSI and POSIX semantics, the POSIX runtime setting indicates that the POSIX semantics will be followed.
- POSIX(ON) required refers to whether the enclave can run
with the POSIX semantics.
These standards do have some overlap, as illustrated in Figure 1.
The C library contains several functions that are extensions to the SAA CPI Level 2 definition. These library functions are available only if the LANGLVL(EXTENDED) compile-time option is in effect. As indicated, some of the stub routines for the extensions are available if you specify LANGLVL(ANSI). 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.