ULTRIX Guide to VAX C for ULTRIX

Order Number: AA-ME83B-TE

This document, titled "ULTRIX Guide to VAX C for ULTRIX" (Order Number AA-ME83B-TE, June 1990), serves as a comprehensive reference for programmers developing and debugging C applications on VAX processors running the ULTRIX operating system (Version 4.0 or higher). It is intended for both experienced and novice programmers.

The guide covers:

  1. Program Portability: Detailed considerations for migrating C source programs between different compilers (specifically pcc and VAX C/VMS) and the ULTRIX environment, highlighting behavioral and language differences.
  2. VAX C Program Development: Instructions on creating, compiling, and linking VAX C programs using the vcc command, including compiler and linker functions, options, output listings, and diagnostic messages.
  3. Debugging with dbx: An in-depth look at the dbx symbolic debugger, covering its invocation, conventions, commands for source-level and machine-level debugging, and strategies for debugging optimized programs.
  4. VAX C Programming Concepts: A foundational overview and detailed explanation of the VAX C language, including:
    • Program structure, basic input/output, and control flow statements (if, switch, loops).
    • Concepts of values, addresses, and pointers.
    • Aggregates such as arrays, character strings, structures, and unions.
    • Function definitions, declarations, and prototypes.
    • Identifiers, keywords, blocks, and comments.
    • Source code checking functionality.
  5. Expressions and Operators: A comprehensive description of VAX C's operators (unary, binary, conditional, assignment, comma) and rules for data-type conversions.
  6. Data Types and Declarations: Details on constants, variables, various integer types, floating-point numbers, pointers, enumerated types, and how to interpret complex declarations.
  7. Storage Classes and Allocation: Explanation of storage-class keywords (auto, register, static, extern, globaldef, globalref, globalvalue) and modifiers (const, volatile, noshare, _align), defining identifier scope, storage location, and lifetime.
  8. Preprocessor Directives: Usage and functionality of directives like #define, #undef, conditional compilation (#if, #ifdef, etc.), file inclusion (#include), and implementation-specific #pragma directives.
  9. Predefined Macros and Built-In Functions: Information on system-identification macros (e.g., __DATE__, __FILE__) and built-in functions that provide direct access to VAX hardware instructions for efficient operations.

The document also includes appendices that summarize the lk linker, list all diagnostic messages, and describe methods for transporting VAX C programs and data files between VMS and ULTRIX systems.

AA-ME83B-TE
June 1990
293 pages
Quality

Original
13MB

Site structure and layout ©2025 Majenko Technologies