OpenVMS Academy Programming Features

Course Code: VM310
Length: 5 days

Schedule and Registration

Course Description

This course is intended to quickly bring the application programmer up to speed for programming in an OpenVMS environment. The scope of material is fairly broad from basic compiling to advanced system services. Although some of the material is provided as an exposure to capabilities available to the programmer, it is expected that the students will be able to program at an in depth level upon completion of this course. The course covers the following categories: General Programming, Synchronization, File System and RMS, Processes and Scheduling, and Memory Management.

The information in this class is designed to be applied to any compiled programming language on OpenVMS. Nearly all examples are provided in C, Fortran and Pascal. Each of the C examples have been compiled and tested with both the C and the C++ compilers. Where language differences exist, examples may also be included in Basic, Cobol and Macro-32.

Who Should Attend

OpenVMS Application and System Programmers with knowledge of one or more compiled programming languages


Before taking this course, students should:

  • Have a fundamental understanding of OpenVMS
  • Be able to issue DCL commands
  • Be able to create and edit text files
  • Be familiar with one of the programming languages supported on OpenVMS

Benefits of Attending this Class

Upon completion of this course, students will be able to:

  • Compile and link a program
  • Read listing and map files
  • Call procedures, including system services and run-time library routines
  • Create and manage processes
  • Communicate with other processes
  • Synchronize using event flags and locks

Course Contents

  • System Architecture
  • OpenVMS Clusters
  • Access Modes
  • Processes
  • Memory Management Concepts
The Application Development Cycle
  • Development Cycle
  • OpenVMS Compilers
  • Common Compiler Options
  • OpenVMS Linker
  • Image Activation
  • Example Build and Activation
  • Symbolic Debuggere
  • Symbolic Naming Conventions
  • Libraries
  • Layered Products for Developers
Data Formats
  • Integral Values
  • Floating Point Values
  • Data Alignment
  • Calling Standard
  • Item Lists
  • Procedure Status
Library Routines
  • Run Time Library Routines
  • System Services
  • Utility Routines
  • Cross-Platform Routines
  • Extension and Integration Routines
  • String Manipulation Example
  • Convert Floating Point Data
  • Foreign Commands
  • System Messages
  • Sorting Data
Events and Synchronization
  • Synchronization
  • Specialized Instructions
  • Event Flags
  • I/O Status Block
  • Asynchronous System Traps
  • Recursive Programming
  • System Events
Time and Timers
  • Time Formats
  • System Time
  • Time Conversion
  • Mathematical Operations on Time
  • Components of Time
  • Coordinated Universal Time
  • Process Times and Counts
  • System Timers
Condition Handling
  • Conditions and Exceptions
  • Signaling an Exception
  • Condition Handlers
  • Exit Handlers
Record Management Services
  • RMS Concepts
  • RMS Structures
  • RMS Services
  • Sequential File Example
  • Indexed File Example
  • RMS Synchronization with Others
  • Language Specific Options
  • File Definition Language
  • RMS Utilities
Low Level I/O
  • Overview
  • File I/O
  • Mailbox I/O
  • Terminal I/O
  • Getting Device Information
  • Other QIO Interfaces
Lock Manager
  • Overview
  • Lock Modes
  • Blocking ASTs
  • Lock Implementation
Managing Processes
  • Image Activation
  • Process Creation
  • Process Selection for System Services
  • Getting Job/Process Information
  • Process Management and Control
Memory Management
  • Overview
  • Dynamic Memory Allocation
  • Process Sections
  • Virtual Memory and Physical Memory
  • 64-bit Memory Usage
Shareable Images
  • Shareable Images
  • Dynamically Loading Shareable Images
  • Common Blocks

Cookie Manager

We use cookies to enhance the features of our web site. We don't set optional cookies unless you enable them. Using this tool sets a cookie on your device to remember your preferences. For more detailed information about the cookies we use, see our Cookies page.

Necessary Cookies

Necessary cookies enable core functionality such as security, network management, and accessibility. You may disable these by changing your browser settings, but this may affect how the website functions.

Preference Cookies

Preference cookies enable this site to remember information that changes the way the website behaves or looks.

Statistics Cookies

Statistic cookies help us to understand how visitors interact with the site by collecting and reporting information anonymously.

Marketing Cookies

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.