Annotation of cci/usr/src/usr.lib/libsI77/due.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.