HP OpenVMS systems
Order Number: AA--PV6HE--TK
This manual documents the general-purpose routines contained in the OTS$ facility of the OpenVMS Run-Time Library.
Revision/Update Information: This manual supersedes the HP OpenVMS RTL General Purpose (OTS$) Manual for OpenVMS Alpha Version 7.3.
Software Version: OpenVMS I64 Version 8.2 OpenVMS Alpha Version 8.2
Palo Alto, California
© Copyright 2005 Hewlett-Packard Development Company, L.P.
Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license.
The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.
Intel and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Printed in the US
The HP OpenVMS documentation set is available on CD-ROM.
This manual provides users of the OpenVMS operating system with detailed usage and reference information on general-purpose routines supplied in the OTS$ facility of the Run-Time Library.
This manual is intended for system and application programmers who write programs that call OTS$ Run-Time Library routines.
This manual is organized into two parts as follows:
The Run-Time Library routines are documented in a series of reference manuals. A description of how the Run-Time Library routines are accessed and of OpenVMS features and functionality available through calls to the OTS$ Run-Time Library appears in the OpenVMS Programming Concepts Manual. Descriptions of other RTL facilities and their corresponding routines and usages are discussed in the following books:
The Guide to the POSIX Threads Library contains guidelines and reference information for HP POSIX Threads2, the HP Multithreading Run-Time Library.
Application programmers using any programming language can refer to the Guide to Creating OpenVMS Modular Procedures for writing modular and reentrant code.
High-level language programmers will find additional information on calling Run-Time Library routines in their language reference manual. Additional information may also be found in the language user's guide provided with your OpenVMS language software.
For a complete list and description of the manuals in the OpenVMS documentation set, see the HP OpenVMS Version 8.2 New Features and Documentation Overview.
For additional information about HP OpenVMS products and services, see the following World Wide Web address:
1 This manual has been archived but is available on the OpenVMS Documentation CD-ROM.
2 HP POSIX Threads was formerly called DECthreads.
HP welcomes your comments on this manual. Please send comments to either of the following addresses:
OSSG Documentation Group, ZKO3-4/U08
110 Spit Brook Rd.
Nashua, NH 03062-2698
For information on how to order additional documentation, visit the following World Wide Web address:
The following conventions are used in this manual:
|A sequence such as Ctrl/ x indicates that you must hold down the key labeled Ctrl while you press another key or a pointing device button.
|A sequence such as PF1 x indicates that you must first press and release the key labeled PF1 and then press and release another key or a pointing device button.
In examples, a key name enclosed in a box indicates that you press a
key on the keyboard. (In text, a key name is not enclosed in a box.)
In the HTML version of this document, this convention appears as brackets, rather than a box.
A horizontal ellipsis in examples indicates one of the following
|A vertical ellipsis indicates the omission of items from a code example or command format; the items are omitted because they are not important to the topic being discussed.
|In command format descriptions, parentheses indicate that you must enclose choices in parentheses if you specify more than one.
|In command format descriptions, brackets indicate optional choices. You can choose one or more items or no items. Do not type the brackets on the command line. However, you must include the brackets in the syntax for OpenVMS directory specifications and for a substring specification in an assignment statement.
|In command format descriptions, braces indicate a required choice of options; you must choose one of the options listed. Do not type the braces on the command line.
|This typeface represents the introduction of a new term. It also represents the name of an argument, an attribute, or a reason.
|Italic text indicates important information, complete titles of manuals, or variables. Variables include information that varies in system output (Internal error number), in command lines (/PRODUCER= name), and in command parameters in text (where dd represents the predefined code for the device type).
|Uppercase text indicates a command, the name of a routine, the name of a file, or the abbreviation for a system privilege.
Monospace type indicates code examples and interactive screen displays.
In the C programming language, monospace type in text identifies the following elements: keywords, the names of independently compiled external functions and files, syntax summaries, and references to variables or identifiers introduced in an example.
|A hyphen at the end of a command format description, command line, or code line indicates that the command or statement continues on the following line.
|All numbers in text are assumed to be decimal unless otherwise noted. Nondecimal radixes---binary, octal, or hexadecimal---are explicitly indicated.
This chapter describes the OpenVMS Run-Time Library General Purpose (OTS$) Facility. See the OTS$ Reference Section for a detailed description of each routine within the OTS$ facility.
Most of the OTS$ routines were originally designed to support language
compilers. Because they perform general-purpose functions, the routines
were moved into the language-independent facility, OTS$.
The Run-Time Library General Purpose (OTS$) Facility provides routines to perform general-purpose functions. These functions include data type conversions as part of a compiler's generated code, and some mathematical functions.
The OTS$ facility contains routines to perform the following main tasks:
Some restrictions apply if you link certain OTS$ routines on an Alpha system or HP OpenVMS Industry Standard 64 for Integrity Servers (I64) system. See Section 1.2 for more information about these restrictions.
|Convert a D-floating, G-floating, H-floating, IEEE S-floating or IEEE T-floating value to a character string.
|Convert an unsigned integer to binary text.
|Convert a signed integer to signed integer text.
|Convert an integer to logical text.
|Convert an unsigned integer to octal text.
|Convert an unsigned integer to decimal text.
|Convert an integer to hexadecimal text.
|Convert binary text to an unsigned integer value.
|Convert signed integer text to an integer value.
|Convert logical text to an integer value.
|Convert octal text to an unsigned integer value.
|Convert unsigned decimal text to an integer value.
|Convert numeric text to a D-, F-, G-, H-, IEEE S-, or IEEE T-floating value.
|Convert hexadecimal text to an unsigned integer value.
For more information on Run-Time Library conversion routines, see the CVT$ reference section in the HP OpenVMS RTL Library (LIB$) Manual.
|Perform complex division.
|Perform packed decimal division with a long divisor.
|Perform packed decimal division with a short divisor.
|Move data without fill.
|Move data with fill.
|Perform complex multiplication.
|OTS$POWC xC x
|Raise a complex base to a complex floating-point exponent.
|Raise a complex base to a signed longword exponent.
|Raise a D-floating base to a D-floating exponent.
|Raise a D-floating base to an F-floating exponent.
|Raise a D-floating base to a longword integer exponent.
|Raise a G-floating base to a G-floating or longword integer exponent.
|Raise a G-floating base to a longword integer exponent.
|Raise an H-floating base to an H-floating exponent.
|Raise an H-floating base to a longword integer exponent.
|Raise a word integer base to a word integer exponent.
|Raise a longword integer base to a longword integer exponent.
|Raise an unsigned longword integer base to an unsigned longword integer exponent.
|Raise a floating-point base to an unsigned longword integer exponent.
|Raise an F-floating base to a D-floating exponent.
|Raise an F-floating base to a longword integer exponent.
|Raise an F-floating base to an F-floating exponent.
|Raise an IEEE S-floating base to a longword integer exponent.
|Raise an IEEE S-floating base to an S-floating or longword integer exponent.
|Raise an IEEE T-floating base to a longword integer exponent.
|Raise an IEEE T-floating base to a T-floating or longword integer exponent.
|Copy a source string passed by descriptor to a destination string.
|Copy a source string passed by reference to a destination string.
|Free one dynamic string.
|Free n dynamic strings.
|Get one dynamic string.
|Perform a call to a procedure that may be either in native code or in a translated image.
|Transfer control to a bound procedure.
On Alpha and I64 systems, if you use the OTS$ entry points for certain mathematics routines, you must link against the DPML$SHR.EXE library. Alternately, you can use the equivalent math$ entry point for the routine and link against either STARLET.OLB or the DPML$SHR.EXE library. Math$ entry points are available only on Alpha and I64 systems.
Table 1-9 lists the affected OTS$ entry points with their equivalent math$ entry points. Refer to the Compaq Portable Mathematics Library for information about the math$ entry points.
|OTS$ Entry Point
|Math$ Entry Point