1: /*
   2: char id_due[] = "@(#)due.c	1.3";
   3:  *
   4:  * direct unformatted external i/o
   5:  */
   6: 
   7: #include "fio.h"
   8: 
   9: char rdue[] = "read due";
  10: char wdue[] = "write due";
  11: 
  12: s_rdue(a) cilist *a;
  13: {
  14:     int n;
  15:     reading = YES;
  16:     if(n=c_due(a,READ)) return(n);
  17:     if(curunit->uwrt && ! nowreading(curunit)) err(errflag, errno, rdue);
  18:     return(OK);
  19: }
  20: 
  21: s_wdue(a) cilist *a;
  22: {
  23:     int n;
  24:     reading = NO;
  25:     if(n=c_due(a,WRITE)) return(n);
  26:     curunit->uend = NO;
  27:     if(!curunit->uwrt && ! nowwriting(curunit)) err(errflag, errno, wdue)
  28:     return(OK);
  29: }
  30: 
  31: c_due(a,flag) cilist *a;
  32: {   int n;
  33:     lfname = NULL;
  34:     elist = NO;
  35:     sequential=formatted=NO;
  36:     recpos = reclen = 0;
  37:     external = YES;
  38:     errflag = a->cierr;
  39:     endflag = a->ciend;
  40:     lunit = a->ciunit;
  41:     if(not_legal(lunit)) err(errflag,F_ERUNIT,rdue+5);
  42:     curunit = &units[lunit];
  43:     if (!curunit->ufd && (n=fk_open(flag,DIR,UNF,(ftnint)lunit)) )
  44:         err(errflag,n,rdue+5)
  45:     cf = curunit->ufd;
  46:     elist = YES;
  47:     lfname = curunit->ufnm;
  48:     if (curunit->ufmt) err(errflag,F_ERNOUIO,rdue+5)
  49:     if (!curunit->useek || !curunit->url) err(errflag,F_ERNODIO,rdue+5)
  50:     if (fseek(cf, (long)((a->cirec-1)*curunit->url), 0) < 0)
  51:         return(due_err(rdue+5));
  52:     else
  53:         return(OK);
  54: }
  55: 
  56: e_rdue()
  57: {
  58:     return(OK);
  59: }
  60: 
  61: e_wdue()
  62: {/*	This is to ensure full records. It is really necessary. */
  63:     int n = 0;
  64:     if (curunit->url!=1 && recpos!=curunit->url &&
  65:         (fseek(cf, (long)(curunit->url-recpos-1), 1) < 0
  66:         || fwrite(&n, 1, 1, cf) != 1))
  67:             return(due_err(rdue+5));
  68:     return(OK);
  69: }

Defined functions

c_due defined in line 31; used 2 times
e_rdue defined in line 56; never used
e_wdue defined in line 61; never used
s_rdue defined in line 12; never used
s_wdue defined in line 21; never used

Defined variables

rdue defined in line 9; used 7 times
wdue defined in line 10; used 1 times
  • in line 27
Last modified: 1983-05-20
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 676
Valid CSS Valid XHTML 1.0 Strict