home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / sharew / f_2_c / libi77 / fio.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-10  |  1.3 KB  |  66 lines

  1. #include "stdio.h"
  2. #ifndef NULL
  3. /* ANSI C */
  4. #include "stddef.h"
  5. #endif
  6.  
  7. #ifndef SEEK_SET
  8. #define SEEK_SET 0
  9. #define SEEK_CUR 1
  10. #define SEEK_END 2
  11. #endif
  12.  
  13. #ifdef MSDOS
  14. #ifndef NON_UNIX_STDIO
  15. #define NON_UNIX_STDIO
  16. #endif
  17. #endif
  18.  
  19. /*units*/
  20. typedef struct
  21. {    FILE *ufd;    /*0=unconnected*/
  22.     char *ufnm;
  23. #ifndef MSDOS
  24.     long uinode;
  25.     int udev;
  26. #endif
  27.     int url;    /*0=sequential*/
  28.     flag useek;    /*true=can backspace, use dir, ...*/
  29.     flag ufmt;
  30.     flag uprnt;
  31.     flag ublnk;
  32.     flag uend;
  33.     flag uwrt;    /*last io was write*/
  34.     flag uscrtch;
  35. } unit;
  36.  
  37. extern int errno;
  38. extern flag init;
  39. extern cilist *elist;    /*active external io list*/
  40. extern flag reading,external,sequential,formatted;
  41. extern int (*getn)(),(*putn)();    /*for formatted io*/
  42. extern long inode();
  43. extern FILE *cf;    /*current file*/
  44. extern unit *curunit;    /*current unit*/
  45. extern unit units[];
  46. extern VOID sig_die();
  47. #define err(f,m,s) {if(f) errno= m; else fatal(m,s); return(m);}
  48.  
  49. /*Table sizes*/
  50. #define MXUNIT 100
  51.  
  52. extern int recpos;    /*position in current record*/
  53. extern int cursor;    /* offset to move to */
  54. extern int hiwater;    /* so TL doesn't confuse us */
  55.  
  56. #define WRITE    1
  57. #define READ    2
  58. #define SEQ    3
  59. #define DIR    4
  60. #define FMT    5
  61. #define UNF    6
  62. #define EXT    7
  63. #define INT    8
  64.  
  65. #define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
  66.