#include #include #include #include #include #include #include #include #include #include #include "dr_include:stru_acc.h" #define P0SPACE ((void*)0x0200) #define GBLSECMAX 10 /* // Open the specified file, using basic RMS calls... // (The FAB$M_UFO is typically used with backing storage files.) */ RmsFileOpen( struct FAB *fab, char *FileName, char *DefFileName ) { *fab = cc$rms_fab; fab->fab$b_fac = 0; fab->fab$l_fop = FAB$M_UFO; fab->fab$b_shr = FAB$M_UPI | FAB$M_SHRGET; fab->fab$l_fna = FileName; fab->fab$b_fns = strlen( FileName ); fab->fab$l_dna = DefFileName; fab->fab$b_dns = strlen( DefFileName ); return sys$open( fab, 0, 0 ); } void main (void) { long status; $DESCRIPTOR( SecDsc, "RRL$GBLSEC" ); void *InAdr[2] = {P0SPACE,P0SPACE}; void *RetAdr[2] = {NULL,NULL}; struct FAB Fab; struct str_acc_num *acc_buf; unsigned long total,p0,p1,idx; int acc; /* ** */ status = lib$init_timer(); if (!$VMS_STATUS_SUCCESS( status )) lib$signal( status ); status = RmsFileOpen( &Fab, "gblsec", "$1$dua1130:[laishev.work].bck" ); if (!$VMS_STATUS_SUCCESS( status )) lib$signal( status ); InAdr[0] = P0SPACE; InAdr[1] = ((void *) (512 + 512*Fab.fab$l_alq)); status = sys$crmpsc( InAdr, RetAdr, PSL$C_USER, SEC$M_EXPREG | SEC$M_GBL,&SecDsc, 0, 0, Fab.fab$l_stv,0 ,0, 0, 0 ); if (!$VMS_STATUS_SUCCESS( status )) lib$signal( status ); /* ** */ acc_buf = RetAdr[0]; p0 = RetAdr[0]; p1 = RetAdr[1]; total = p1 - p0; /* ** */ for (idx = 0; idx < (unsigned long) Fab.fab$l_alq; idx++,acc_buf++) { if ( (acc_buf->dfaxsend == 'Y') || (acc_buf->dfaxsend == 'F') ) { printf("\ndacc_num = %lu,doperat = %8.8s", acc_buf->dacc_num, acc_buf->doperat); } } status = lib$show_timer(); if (!$VMS_STATUS_SUCCESS( status )) lib$signal( status ); }