home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / libI77 / fio.h < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  1.9 KB  |  111 lines

  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 10
  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
  111.