|
|
1.1 ! root 1: #include <stdio.h> ! 2: typedef long ftnint; ! 3: typedef ftnint flag; ! 4: typedef long ftnlen; ! 5: /*external read, write*/ ! 6: typedef struct ! 7: { flag cierr; ! 8: ftnint ciunit; ! 9: flag ciend; ! 10: char *cifmt; ! 11: ftnint cirec; ! 12: } cilist; ! 13: /*internal read, write*/ ! 14: typedef struct ! 15: { flag icierr; ! 16: char *iciunit; ! 17: flag iciend; ! 18: char *icifmt; ! 19: ftnint icirlen; ! 20: ftnint icirnum; ! 21: } icilist; ! 22: /*open*/ ! 23: typedef struct ! 24: { flag oerr; ! 25: ftnint ounit; ! 26: char *ofnm; ! 27: ftnlen ofnmlen; ! 28: char *osta; ! 29: char *oacc; ! 30: char *ofm; ! 31: ftnint orl; ! 32: char *oblnk; ! 33: } olist; ! 34: /*close*/ ! 35: typedef struct ! 36: { flag cerr; ! 37: ftnint cunit; ! 38: char *csta; ! 39: } cllist; ! 40: /*rewind, backspace, endfile*/ ! 41: typedef struct ! 42: { flag aerr; ! 43: ftnint aunit; ! 44: } alist; ! 45: /*units*/ ! 46: typedef struct ! 47: { FILE *ufd; /*0=unconnected*/ ! 48: char *ufnm; ! 49: long uinode; ! 50: int url; /*0=sequential*/ ! 51: flag useek; /*true=can backspace, use dir, ...*/ ! 52: flag ufmt; ! 53: flag uprnt; ! 54: flag ublnk; ! 55: flag uend; ! 56: flag uwrt; /*last io was write*/ ! 57: flag uscrtch; ! 58: } unit; ! 59: typedef struct ! 60: { flag inerr; ! 61: ftnint inunit; ! 62: char *infile; ! 63: ftnlen infilen; ! 64: ftnint *inex; /*parameters in standard's order*/ ! 65: ftnint *inopen; ! 66: ftnint *innum; ! 67: ftnint *innamed; ! 68: char *inname; ! 69: ftnlen innamlen; ! 70: char *inacc; ! 71: ftnlen inacclen; ! 72: char *inseq; ! 73: ftnlen inseqlen; ! 74: char *indir; ! 75: ftnlen indirlen; ! 76: char *infmt; ! 77: ftnlen infmtlen; ! 78: char *inform; ! 79: ftnint informlen; ! 80: char *inunf; ! 81: ftnlen inunflen; ! 82: ftnint *inrecl; ! 83: ftnint *innrec; ! 84: char *inblank; ! 85: ftnlen inblanklen; ! 86: } inlist; ! 87: ! 88: extern int errno; ! 89: extern flag init; ! 90: extern cilist *elist; /*active external io list*/ ! 91: extern flag reading,external,sequential,formatted; ! 92: extern int (*getn)(),(*putn)(); /*for formatted io*/ ! 93: extern FILE *cf; /*current file*/ ! 94: extern unit *curunit; /*current unit*/ ! 95: extern unit units[]; ! 96: #define err(f,n,s) {if(f) errno= n; else fatal(n,s); return(n);} ! 97: ! 98: /*Table sizes*/ ! 99: #define MXUNIT 19 ! 100: ! 101: extern int recpos; /*position in current record*/ ! 102: ! 103: #define WRITE 1 ! 104: #define READ 2 ! 105: #define SEQ 3 ! 106: #define DIR 4 ! 107: #define FMT 5 ! 108: #define UNF 6 ! 109: #define EXT 7 ! 110: #define INT 8
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.