Specifications
Using Callable System Routines
10.2 RTL Routines
Table 10–1 (Cont.) Run-Time Library Facilities
Facility Prefix Types of Tasks Performed
OTS$ General purpose routines that perform tasks such as data type
conversions as part of a compiler’s generated code, and also some
mathematical functions
PPL$ Parallel processing routines that simplify subprocess creation,
interprocess communication, and resource sharing for parallel
applications
SMG$ Screen management routines that are used in designing, composing,
and keeping track of complex images on a video screen
STR$ String manipulation routines that perform such tasks as searching
for substrings, concatenating strings, and prefixing and appending
strings
10.2.2 Features of the RTL
The RTL provides the following features and capabilities:
• RTL routines perform a wide range of general utility operations. You can call
an RTL routine from any OpenVMS language instead of writing your own
code to perform the operation.
Routines in the RTL are part of the OpenVMS Common Run-Time
environment; therefore, they can be called from any OpenVMS language.
• Because many of the routines are shared, they take up less space in memory.
• When new versions of the RTL are installed, you do not need to revise your
calling program, and generally do not need to relink.
• All RTL routines are fully reentrant unless the description of the facility or
the routine specifies otherwise.
The term reentrant means that the routine executes correctly regardless of
how many threads of execution are executing at the same time. Currently,
reentrancy is supported only when those multiple threads are executing on
the same processor. The term AST-reentrant means that a routine may be
interrupted and reentered from itself or an AST-level thread of execution only.
In particular, an AST-reentrant routine may not execute properly if more than
one non-AST-level thread of execution is executing the routine at once.
Because the Run-Time Library routines are reentrant (unless otherwise
noted), they can be called from multiple threads of execution. For example,
a routine may be called from both an AST-level thread and a non-AST-level
thread of an image, as well as from the multiple tasks of an Ada program.
10.3 System Services
System services are procedures that the operating system uses to control
resources available to processes; to provide for communication among processes;
and to perform basic operating system functions, such as the coordination of
input/output operations.
Although most system services are used primarily by the operating system on
behalf of logged-in users, they are also available for general use and provide
mechanisms that you can use in application programs. For example, when you
log in to the operating system, the Create Process ($CREPRC) system service
is called to create a process on your behalf. You may, in turn, write a program
10–4










