z/OS XL C/C++ considerations under IMS

To interface with IMS™ from z/OS XL C/C++, you must do the following:
  • Specify the PLIST(OS), ENV(IMS), and NOEXECOPS runtime options of #pragma runopts in your source code. The PLIST(OS) option establishes the correct parameter list format when invoked under IMS. The ENV(IMS) option establishes the correct operating environment. The NOEXECOPS option specifies that runtime options cannot be specified for IMS.
  • When you use the PLIST(OS) option in #pragma runopts, argc contains 1 (one) and argv[0] contains NULL.

For more information about using the #pragma runopts preprocessor directive, see Using runtime options.

Applications that use the POSIX(ON) runtime option are supported under IMS only if they consist of a single thread. Calls to z/OS UNIX threading functions are restricted under IMS. See z/OS XL C/C++ Programming Guide for a list of restrictions on running z/OS XL C/C++ programs under IMS with z/OS UNIX.

The IMS environment supports 31-bit XPLINK applications . However, applications that make many calls to the Language Environment® callable service CEETDLI or the C ctdli() function might not be suitable for XPLINK because of the overhead for these XPLINK to nonXPLINK calls. See When XPLINK should not be used for more information.