4    Programming Documentation

This chapter describes the documentation designed for software developers who write applications on or for the Tru64 UNIX operating system. The books in this category are generally geared toward advanced users. Each document is individually described.

Books that are printed can be purchased from Compaq in the documentation kits described in Section 1.5.

Except for a few externally published manuals, the documentation described here was produced by Compaq writers working closely with the developers of the Tru64 UNIX operating system.

Books identified as revised, were updated with the Version 5.1 release.

4.1    Printed and Online Documentation

The documentation described in this section is provided on the Tru64 UNIX Documentation CD-ROM and in the optional printed documentation kits. For more information on the printed documentation set, see Section 1.5.

Documentation that was revised for the Version 5.1 release is indicated in the section heads.

4.1.1    Assembly Language Programmer's Guide (revised)

The Assembly Language Programmer's Guide describes the Alpha hardware architecture's assembly language, which is supported by the Tru64 UNIX compiler system. The manual describes the assembly language syntax rules, and how to write assembly language programs.

This manual is for system software developers who are writing assembly language programs on or for Tru64 UNIX.

4.1.2    Asynchronous Transfer Mode (revised)

The Asynchronous Transfer Mode describes the Tru64 UNIX Asynchronous Transfer Mode (ATM) subsystem, how to configure the subsystem, and how to use the ATM kernel interfaces. It is written for experienced UNIX kernel programmers who are responsible for writing ATM device drivers and kernel modules. After reading this manual, a kernel programmer should be able to do the following:

This manual does not describe the application programming interface (API) that user-level applications would use to access the ATM subsystem. This manual is not an ATM networking tutorial.

4.1.3    Calling Standard for Alpha Systems (revised)

The Calling Standard for Alpha Systems manual defines the requirements, mechanisms, and conventions used in the interface that supports procedure calls on Tru64 UNIX for Alpha systems. The standard defines data structures, constants, algorithms, conventions, methods, and functional interfaces, which enable a native, user-mode procedure to operate correctly in the multilanguage and multithreaded Tru64 UNIX environment on Alpha hardware.

Although this manual primarily defines requirements for compiler and debugger writers, the information applies to procedure calling for all programmers at all levels of programming.

4.1.4    Compaq C Language Reference Manual (revised)

The Compaq C Language Reference Manual (previously called the DEC C Language Reference Manual) provides reference information for using the Compaq C language on Compaq systems. Compaq C is an ISO/ANSI-compliant C compiler for Tru64 UNIX and OpenVMS VAX and Alpha systems.

This manual is based on the ISO C Standard (ISO 9899:1990[1992]), formerly the ANSI X3J11 committee's standard for the C programming language (commonly called ANSI C). All library functions and language extensions to the ANSI C standard are also described.

This manual is intended for programmers who need reference information on the Compaq C language. For task-oriented information or platform-specific information, see the cc(1) reference page and the Programmer's Guide.

4.1.5    Compaq Portable Mathematics Library

The Compaq Portable Mathematics Library provides reference and exception information for the Compaq Portable Mathematics Library (CPML) software. This manual documents the CPML routines and, in particular, how they behave when given an exception input argument. It also documents operating system entry points and supported floating-point data types.

This manual is for compiler writers and system and application programmers who do not have high-level language support of CPML routines in their language of choice, but instead need to access CPML routines directly from application programs.

4.1.6    Guide to the POSIX Threads Library

The Guide to the POSIX Threads Library (formerly called Guide to DECthreads) provides usage and reference information on POSIX Threads Library routines. It provides information on the three POSIX Threads Library interfaces used to perform multithreaded operations: cma, pthread, and pthread exception-returning.

This manual is for programmers writing multithreaded applications. It assumes experience with a high-level programming language (such as C), with UNIX operating systems, and with UNIX software development tools.

4.1.7    Guide to Preparing Product Kits (revised)

The Guide to Preparing Product Kits describes the procedures for creating, maintaining, and installing the collections of files and directories that make up a layered product kit. A kit is the standard mechanism by which layered product modifications are delivered and maintained on a Tru64 UNIX system. Kits are distributed on CD-ROM, diskettes, or tape for installation on customers' systems.

This is the same manual that is included in the Tru64 UNIX Device Drivers Kit (see Chapter 7).

4.1.8    Guide to Realtime Programming (revised)

The Guide to Realtime Programming is for programmers who are developing realtime applications on Tru64 UNIX systems. It provides information on writing new realtime applications and porting existing realtime applications from other systems.

This manual does not present function syntax or reference information; the online reference pages provide that information.

This manual is for application programmers or system engineers who are already familiar with the C programming language. It assumes experience with UNIX operating systems and with UNIX software development tools.

4.1.9    Network Programmer's Guide (revised)

The Network Programmer's Guide describes the Tru64 UNIX network programming environment. It provides an in depth description of the X/Open Transport Interface (XTI) and the sockets and STREAMS programming frameworks, including information about system calls, header files, and libraries. Additionally, it provides information about porting sockets-based applications to XTI.

This manual also describes the software bridge ifnet (STREAMS module and DLPI STREAMS pseudodevice driver) that the Tru64 UNIX operating system supports. This bridge allows programs that use sockets-based protocol stacks to access STREAMS drivers, and programs that use STREAMS-based protocol stacks to access BSD-based drivers.

This manual is for experienced UNIX programmers.

4.1.10    Programmer's Guide (revised)

The Programmer's Guide describes the programming environment of the Tru64 UNIX operating system, with an emphasis on the C programming language.

This manual is for all programmers who use the Tru64 UNIX operating system to create or maintain programs in any supported language.

4.1.11    Programming Support Tools

The Programming Support Tools manual describes commands and utilities for text manipulation, macro and program generation, and source file management on Tru64 UNIX.

Although the commands and utilities described in this manual are primarily for programmers, some of them (such as grep, awk, sed, and the Source Code Control System (SCCS)) are useful for general users.

This manual assumes that the reader is a moderately experienced user of UNIX systems.

4.1.12    Programming with ONC RPC

The Programming with ONC RPC manual provides an overview of high-level programming with remote procedure calls (RPC) in the Open-Network Computing Environment (ONC). It describes how to use the rpcgen protocol compiler to create RPC applications and describes the RPC programming interface.

This manual is for programmers who want to write network applications without knowledge of the underlying network.

4.1.13    Writing Kernel Modules (revised)

Kernel modules are binary images containing code and data structures that run in the UNIX kernel. These modules provide a level of common code that improves the efficiency of a system by combining like tasks in a single area and eliminating redundant code.

The Writing Kernel Modules manual provides information for developers who want to augment the kernel with modules tailored to their particular environment.

4.1.14    Writing Software for the International Market (revised)

Internationalization (often called I18N) is the process of designing or adapting programs to interact with users in their own language and to reflect the culture of the user's region.

The Writing Software for the International Market manual provides an overview of internationalization concepts. It also provides details about writing internationalized programs, creating and using message catalogs, and developing or customizing locales.

This manual is for programmers developing internationalized applications for the Tru64 UNIX operating system.

4.2    Printed-Only Documentation

The documentation described in this section is provided only in print and is included in the Tru64 UNIX documentation kits.

4.2.1    OSF/Motif Programmer's Guide

The OSF/Motif Programmer's Guide (produced by the OSF and published by Prentice Hall) provides programming information on how to use the various components of the OSF/Motif environment: the Toolkit, window manager, and user interface language.

This manual is for programmers who want to create applications in the OSF/Motif environment.

4.2.2    OSF/Motif Style Guide

The OSF/Motif Style Guide (produced by the OSF and published by Prentice Hall) provides a framework of behavior specifications to guide application developers, widget developers, and window manager developers in the design and implementation of products consistent with the Presentation Manager and the OSF/Motif user interface.

This manual establishes consistent behavior among new products by drawing out common elements from a variety of current behavioral models. It anticipates the evolution of graphical user interfaces as new technology becomes available and as the use of the OSF/Motif user interface spreads.

This manual is for programmers and interface designers developing OSF/Motif applications who want to present a uniform and usable software interface consistent with other OSF/Motif applications.

4.2.3    Programmer's Guide: STREAMS

The Programmer's Guide: STREAMS (published by Prentice Hall) provides information on the use of the STREAMS mechanism at the user and kernel levels. It contains introductory information for those who are unfamiliar with the STREAMS mechanism.

This manual addresses topics such as using STREAMS to monitor, control, and poll STREAMS; designing and implementing STREAMS modules and drivers; and using STREAMS-based pipes and FIFOs. It also describes the STREAMS multiplexing facility and the STREAMS-based terminal and pseudo-terminal subsystems.

4.3    Online-Only Documentation

The documentation described in this section is provided on the documentation CD-ROM.

4.3.1    Java Documentation

The Tru64 UNIX operating system includes a Java Development Kit (JDK), which provides tools to develop and run Java applets and programs on the Tru64 UNIX operating system.

Access to the Java documentation depends upon whether the Java Development Kit is installed on your system and how your system administrator has set up your system. Clicking on Java Overview takes you to a page that provides information about viewing the Java documentation. This page also provides a Web link to the JavaSoft JDK documentation at the Sun Microsystems Java site.

4.3.2    Ladebug Debugger Manual (revised)

The Ladebug Debugger is a tool for debugging executable programs at the source-code and machine-code levels. It can debug programs written in C and C++, Ada, COBOL, and Fortran.

The Ladebug Debugger Manual is for developers who need to debug multiprocess and multithreaded applications, perform kernel debugging, and perform remote client/server debugging.

4.3.3    Object File and Symbol Table Format Specification (revised)

The Object File and Symbol Table Format Specification provides technical information for compiler and debugger writers and other developers who must access or manipulate object files on the Tru64 UNIX operating system. It supplements or replaces information that has been previously available in the Assembly Language Programmer's Guide. A familiarity with basic program development and symbol table concepts is assumed.

4.3.4    Common Desktop Environment: Application Builder User's Guide

The Common Desktop Environment: Application Builder User's Guide introduces the Application Builder and explains how to use it to build CDE applications. Because the Application Builder helps to easily create and modify user interfaces, it is a powerful tool for programmers, user interface designers, and project managers.

4.3.5    Common Desktop Environment: Desktop KornShell User's Guide

The Common Desktop Environment: Desktop KornShell User's Guide provides the information needed to create Motif applications with KornShell (ksh) scripts. It also provides several example scripts of increasing complexity.

This manual is for programmers who want to develop Motif applications using KornShell scripts rather than the C programming language. This manual assumes knowledge of KornShell programming, Motif, and the Xt Intrinsics. Familiarity with the X programming library (Xlib) is also assumed.

4.3.6    Common Desktop Environment: Help System Author's and Programmer's Guide

The Common Desktop Environment: Help System Author's and Programmer's Guide describes how to develop online help for CDE applications. It describes how to create help topics and how to integrate online help into a CDE application.

This manual is for application programmers who want to do the following:

4.3.7    Common Desktop Environment: Internationalization Programmer's Guide

The Common Desktop Environment: Internationalization Programmer's Guide provides information for internationalizing the desktop and enabling applications to support various languages and cultural conventions in a consistent user interface.

This manual is for CDE application programmers whose products are available worldwide.

4.3.8    Common Desktop Environment: Product Glossary

This Common Desktop Environment: Product Glossary provides a comprehensive list of terms used in the Common Desktop Environment.

This manual is for all CDE users.

4.3.9    Common Desktop Environment: Programmer's Guide

The Common Desktop Environment: Programmer's Guide contains the information needed to integrate an existing application into the CDE desktop. It also describes how to write new CDE applications.

This manual assumes a familiarity with Motif, X, UNIX, and C programming.

4.3.10    Common Desktop Environment: Programmer's Overview

The Common Desktop Environment: Programmer's Overview provides a high-level view of the development environment and the developer documentation set for CDE. It is for the following audiences:

4.3.11    Common Desktop Environment: Style Guide and Certification Checklist

The Common Desktop Environment: Style Guide and Certification Checklist provides style guidelines for CDE application design and lists the requirements for CDE application-level certification. CDE requirements consist of the OSF/Motif Version 1.2 requirements with CDE-specific additions.

4.3.12    ToolTalk Service Documentation

ToolTalk is an interapplication communication service that is included as part of the Common Desktop Environment. ToolTalk provides a way for applications and desktop components to request services of each other and to announce events. The following books provide information about the ToolTalk service:

4.3.13    Technical References for Asian Languages

The following guides provide language-specific information and describe the features of several Asian languages supported on the Tru64 UNIX system:

4.3.14    X Window System Documentation

The X Window System is a network-transparent window system, in which multiple applications can run simultaneously in windows, generating text and graphics in monochrome or color on a bitmap display. Network transparency means that application programs can run on machines scattered throughout the network. Because the X Window System permits applications to be device-independent, applications need not be rewritten, recompiled, or even relinked to work with new display hardware.

The documentation described in this section was written by the engineers who developed the X Window System and was provided by the X Consortium.