OpenVMS Source-Code Demos

HELLO_OPENVMS_WORLD.C

//================================================================================================
// title    : hello_openvms_world.c
// author   : Neil Rieck
// created  : 1999-09-30
// purpose  : to test the new DECC compiler on AlphaServer 4100
// vms build: cc   hello_openvms_world
//          : link hello_openvms_world
// DCL prep : junk = f$environment("DEFAULT")
//          : yada = "$"+ junk +"hello_openvms_world"
// DCL run  : yada 123 456 789
//================================================================================================
#define __NEW_STARLET	1			// enable new (strict) starlet for OpenVMS Alpha 7.0 and later
						// http://h71000.www7.hp.com/doc/82final/5841/5841pro_059.html
#include <stdio.h>				// standard i/o
#include <stdlib.h>				// standard library

int main(int argc, char *argv[])		//
{   int counter;				//
    printf("Hello OpenVMS World!\n");		//
    for (counter=1;counter<=3;counter++){	// loop 1 to 3
	printf(" line count: %d\n",counter);
    }
    printf("\nCommand Line Arguments:\n");	//
    printf("total number: %d\n",argc);		//
    for (counter=0;counter<argc;counter++){
	printf(" arg %d : %s\n",counter,argv[counter]);
    }
    printf("\nEnvironmentals:\n");		//
    printf("HOME: %s\n",getenv("HOME"));	//
    printf("TERM: %s\n",getenv("TERM"));	//
    printf("PATH: %s\n",getenv("PATH"));	//
    printf("USER: %s\n",getenv("USER"));	//
    //
    // "getenv" is a quick way to provide UNIX compatibility
    // "getenv" first checks the logical tables. If a logical
    // is not found, then the CLI symbol tables are checked
    //
    printf("ABC : %s\n",getenv("ABC"));		//
    printf("abc : %s\n",getenv("abc"));		//
    //
    //	the return code is stored in DCL symbol $STATUS ("$sho sym $STATUS")
    //
    // notes   : in the UNIX world, exiting with 0 means okay (anything else is an error)
    //           in the VMS world, the exit code is a little more complicated like so:
    //           0 000 warning
    //           1 001 success
    //           2 010 error
    //           3 011 informatinal
    //           4 100 fatal
    //           5 101 undefined
    //           6 110 undefined
    //           7 111 undefined
    return 1;					// exit with vms success
}