POSIX

Derivation: Portable Operating System Interface - X

POSIX specifies whether the enclave can run with the POSIX semantics.

POSIX is an application characteristic that is maintained at the enclave level. After you establish 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 Language Environment® condition handling semantics.

ANSI C programs can access the z/OS UNIX file system independent of the POSIX setting. Where ambiguities exist between ANSI and POSIX semantics, the POSIX runtime options, setting indicates the POSIX semantics to follow.

Non-CICS® default
POSIX=((OFF),OVR)
CICS default
POSIX is ignored under CICS.
AMODE 64 default
POSIX=((OFF),OVR)

1  POSIX = ( (
1! OFF
1 ON
2  ) ,
1 NONOVR
1! OVR
3  )
OFF
Indicates that the application is not POSIX-enabled. OFF is the default.
ON
Indicates that the application is POSIX-enabled.
OVR
Specifies that the option can be overridden. OVR is the default.
NONOVR
Specifies that the option cannot be overridden.

Usage notes

  • If you set POSIX to ON and you run non-thread-safe languages such as PL/I and C++ in a thread other than the initial thread, the behavior is undefined.
  • If you set POSIX to ON when z/OS® UNIX is not active, the message file receives a warning, POSIX is set to OFF, but the application continues to run.
  • When you set POSIX to ON while an application is running under CICS, you receive a warning message, POSIX is set OFF, and the application continues to run.
  • Within nested enclaves, only one enclave can have the POSIX option set to ON. All other nested enclaves must have the POSIX option set to OFF. When nested enclaves are specifying the runtime option POSIX(ON) within one Language Environment process, Language Environment displays a severity 3 error message and abend U4039 occurs with reason code 172.

For more information

  • For more information about POSIX functions that have an z/OS UNIX kernel dependency, or a POSIX ON dependency (especially for a failure where the kernel dependency or the POSIX ON setting is not met), see z/OS XL C/C++ Runtime Library Reference.
  • For more information about the INTERRUPT runtime option, see INTERRUPT.