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:
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.
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 the POSIX semantics to follow.
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.