Acknowledgments | |
Preface | |
Introduction to C | p. 1 |
A Simple Program | p. 2 |
C Basics | p. 3 |
The VAX/VMS Environment | p. 11 |
VAX Processors | p. 12 |
I/O Buses | p. 14 |
Hardware Components | p. 15 |
Digital Command Language (DCL) | p. 17 |
Program Development | p. 19 |
Layered Products | p. 20 |
DECnet | p. 22 |
Fiber Optics | p. 23 |
VAXclusters | p. 25 |
DECwindows/Motif | p. 30 |
Getting Started with VAX/VMS | p. 33 |
Logging In | p. 34 |
Help | p. 34 |
DCL Commands | p. 37 |
The Terminals | p. 39 |
Basic Commands | p. 41 |
Command Editing | p. 45 |
Error Messages | p. 46 |
Devices | p. 47 |
Files | p. 49 |
The Process | p. 50 |
Operating System Basics | p. 52 |
Conventions | p. 55 |
VMS Manuals | p. 61 |
VAX C Program Structure | p. 63 |
Overall Structure | p. 63 |
Tokens | p. 65 |
Comments | p. 65 |
Statements | p. 65 |
Declarations | p. 65 |
Identifiers and Keywords | p. 66 |
A Block | p. 67 |
Statement Types | p. 68 |
Functions | p. 73 |
The C Preprocessor | p. 82 |
Simple Data Types and Storage Allocation | p. 89 |
Constants and Variables | p. 89 |
Integers | p. 90 |
Characters | p. 91 |
Floating Point Numbers | p. 93 |
The Void Datatype Specifier | p. 93 |
Type Conversions and the Cast Operator | p. 94 |
The typedef Keyword | p. 95 |
Scope of Identifiers and Storage Classes | p. 96 |
Operators and Expressions | p. 105 |
Operators | p. 105 |
Expressions | p. 108 |
Pointers and Arrays | p. 111 |
Pointers and Addresses | p. 111 |
The Void Pointers | p. 112 |
Pointer Arithmetic | p. 113 |
Arrays | p. 115 |
Pointers and Array Manipulations | p. 116 |
Pointer Misuse | p. 117 |
Structures and Unions | p. 119 |
Simple Structures | p. 119 |
More about Structures | p. 121 |
Unions | p. 126 |
Passing Structures to Functions | p. 128 |
Basic Input and Output | p. 131 |
Terminal I/O | p. 132 |
Basic File I/O | p. 133 |
Error Processing | p. 135 |
Terminal I/O Revisited | p. 136 |
The Debugger | p. 141 |
Overview | p. 141 |
A Sample Debug Session | p. 144 |
Scope of Symbols | p. 151 |
Screen-Oriented Debugging | p. 152 |
Debugging Screen-Oriented Programs | p. 155 |
DECwindows Mode Debugging | p. 157 |
Conditional Command Execution | p. 160 |
Other Debugger Features | p. 161 |
VAX Procedure Calling Standard and Multiple Language Programs | p. 169 |
The Standard | p. 169 |
Using the Standard from C | p. 172 |
Mixing Languages | p. 172 |
RMS Files with VAX C | p. 177 |
Introduction to RMS | p. 177 |
Record Formats | p. 179 |
Initial Allocation | p. 179 |
Extend Size | p. 181 |
Disk Cluster Size | p. 182 |
Buckets | p. 182 |
Spanning | p. 183 |
File Sharing and Record Locking | p. 183 |
Indexed Files | p. 184 |
RMS with C | p. 185 |
RMS Utilities | p. 195 |
Using VMS Features from C | p. 205 |
Interprogram Communications | p. 206 |
Mailboxes | p. 206 |
Logical Names | p. 211 |
Global Sections | p. 215 |
Synchronization | p. 220 |
Event Flags | p. 220 |
Locks | p. 227 |
Object Libraries | p. 234 |
Shared Images | p. 235 |
Asynchronous System Traps (ASTs) | p. 240 |
The VAX C Run-Time Library | p. 241 |
Using the RTL Functions | p. 241 |
Using the Run-Time Libraries | p. 242 |
Character Manipulation Functions | p. 243 |
String Manipulation Functions | p. 245 |
I/O Functions | p. 246 |
Error- and Signal-Handling Functions | p. 249 |
Subprocess and Process Communications Functions | p. 250 |
The Screen Management Subpackage, curses - and Screen Manipulation Functions | p. 253 |
Math Functions | p. 254 |
Memory Allocation Functions | p. 255 |
System Functions | p. 255 |
VMS System Services and Run-Time Libraries | p. 257 |
Introduction | p. 257 |
Routine Call Parameters | p. 262 |
Calling Routines from C | p. 265 |
Routine Classification | p. 265 |
A Tape-to-Tape Copy Utility | p. 270 |
DECnet and C: Designing Distributed Applications | p. 277 |
Basic Issues | p. 277 |
File Access across the Network | p. 279 |
Login over the Network | p. 279 |
Networking Terminology and Concepts | p. 280 |
Ethernet | p. 283 |
DDCMP | p. 284 |
Distributed Programming across VAXes | p. 285 |
Programming Using DECnet | p. 286 |
Integrating C Applications with VMS | p. 293 |
Creating HELP | p. 293 |
Error Processing | p. 299 |
Command Language Definition: The CDU Utility | p. 307 |
The VMSINSTAL Facility | p. 311 |
VAXset: Software Project Management Tools | p. 319 |
Code Management System (CMS) | p. 321 |
DEC/Test Manager (DTM) | p. 324 |
Language Sensitive Editor (LSE) | p. 327 |
Module Management System (MMS) | p. 330 |
Performance and Coverage Analyzer (PCA) | p. 334 |
Source Code Analyzer (SCA) | p. 339 |
Useful VMS Products and Features | p. 343 |
Volume Shadowing | p. 344 |
Electronic Disks | p. 347 |
The Disk Striping Driver | p. 348 |
RMS Journaling | p. 349 |
DECdtm - Distributed Transaction Manager | p. 353 |
VAXft Fault-Tolerant VAXes | p. 355 |
SMP - Symmetric Multiprocessing | p. 357 |
Vector Processing | p. 357 |
Macro Output from Compilations | p. 358 |
Appendix 1. Compiler and Linker Options | p. 363 |
Appendix 2. Installing the C Compiler | p. 373 |
Appendix 3. A Complete Utility | p. 377 |
Appendix 4. Input and Output Data Conversion | p. 447 |
Appendix 5. VAX C RTL Functions | p. 453 |
Appendix 6. System-Supplied Header Files | p. 503 |
Index | p. 511 |
Table of Contents provided by Blackwell. All Rights Reserved. |