OpenVMS Source-Code Demos

SYS_CREATE_UID_100.C

//================================================================================================
// title : sys_create_uid_100.c
// author: James F Duff
// created: 2011-10-21
// platform: HP C V7.3-009 on OpenVMS Alpha V8.4
// note  : this file stuff was lifted from:
//	   http://www.eight-cubed.com/examples/framework.php?file=sys_create_uid.c
//       : this version contains a few tweaks
//================================================================================================
#define PROGRAM_VER	"sys_create_uid_100.c"		//
#include <stdio.h>					//
#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 <starlet.h>					// vms specific
#include <ssdef.h>					// vms specific
#include "errchk.h"					// http://www.eight-cubed.com/examples/framework.php?file=errchk.h

int main() {
	static unsigned int r0_status;
	static unsigned int uid[4];			// sizeof = 16 (128 bits)
	//
	printf("program: %s\n", PROGRAM_VER);
	r0_status = sys$create_uid (uid);		//
//	r0_status = sys$create_uid (&uid);		// not legal with _NEW_STARLET
	errchk_sig (r0_status);				// defined in "errchk.h"
	printf("uid: %08lX.%08lX.%08lX.%08lX\n",
		uid[0],
		uid[1],
		uid[2],
		uid[3]);
	return(SS$_NORMAL);				// vms success
}