This
topic explains how to use the system programming
C (SPC) facilities with
z/OS® XL C.
Notes: - Using the system programming C facilities, by programs which have
been compiled with z/OS XL C++ is
not supported.
- IPA is not supported in an SPC environment unless there is a
main() function present.
- XPLINK is not supported by the SPC facilities.
- AMODE 64 applications
are not supported by the SPC facilities.
When z/OS XL C applications
are compiled, many routines are needed to support the z/OS XL C environment
that are not included in your executable. These routines, which are
in z/OS Language Environment®,
are dynamically loaded at run time. This reduces the size of the program
to its practical minimum and provides for the sharing of z/OS XL C library
code by allowing its placement in Extended Link Pack Areas.
z/OS Language
Environment provides
facilities to set up the environment, handle termination, provide
storage management, error handling, interlanguage calls and debugging
support. Also, the C library functions are provided with z/OS Language
Environment. In situations
where not all of these services are needed or available, or more control
over the executive environment is required, the system programming
C facilities can provide a reduced customizable environment for your
application.
System programming facilities enable you to run applications without
z/OS Language
Environment or with
just the
z/OS XL C library
functions available. You can:
- Use a subset of the C language to develop specialized applications
that do not require z/OS Language
Environment on the
machines where the application will run.
You can write freestanding
applications that:
- Do not use the dynamic runtime library.
- Use only the C-specific library functions without any z/OS Language
Environment facilities
to manage the execution environment.
For example, a system programming application could use
the C-specific library function printf() but
not have the common run time initialize the environment. The system
programming facilities would handle initialization. For more information
on this type of application, see Creating freestanding applications.
- Use z/OS XL C as
an assembler language alternative, such as for writing
exit routines for MVS, TSO, or JES.
For more information on this
type of application, see Creating system exit routines.
- Develop applications featuring a persistent C environment,
where a z/OS XL C environment
is created once and used repeatedly for C function execution.
For
more information on this type of application, see Creating and using persistent C environments.
- Develop co-routines using a two-stack model, as used in client-server
style applications. In this style, the user application calls upon
the applications server to perform services independently of the user
and then returns to the user.
For more information on this type
of application, see Developing services in the service routine environment.
Note: Using the decimal data type and its related functions (decabs(), decchk(), and decfix()) without z/OS Language
Environment is not
supported.