fio.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:3k
源码类别:

OpenGL

开发平台:

Visual C++

  1. #include "stdio.h"
  2. #include "errno.h"
  3. #ifndef NULL
  4. /* ANSI C */
  5. #include "stddef.h"
  6. #endif
  7. #ifndef SEEK_SET
  8. #define SEEK_SET 0
  9. #define SEEK_CUR 1
  10. #define SEEK_END 2
  11. #endif
  12. #ifdef MSDOS
  13. #ifndef NON_UNIX_STDIO
  14. #define NON_UNIX_STDIO
  15. #endif
  16. #endif
  17. #ifdef UIOLEN_int
  18. typedef int uiolen;
  19. #else
  20. typedef long uiolen;
  21. #endif
  22. /*units*/
  23. typedef struct
  24. { FILE *ufd; /*0=unconnected*/
  25. char *ufnm;
  26. #ifndef MSDOS
  27. long uinode;
  28. int udev;
  29. #endif
  30. int url; /*0=sequential*/
  31. flag useek; /*true=can backspace, use dir, ...*/
  32. flag ufmt;
  33. flag urw; /* (1 for can read) | (2 for can write) */
  34. flag ublnk;
  35. flag uend;
  36. flag uwrt; /*last io was write*/
  37. flag uscrtch;
  38. } unit;
  39. extern flag f__init;
  40. extern cilist *f__elist; /*active external io list*/
  41. extern flag f__reading,f__external,f__sequential,f__formatted;
  42. #undef Void
  43. #ifdef KR_headers
  44. #define Void /*void*/
  45. extern int (*f__getn)(); /* for formatted input */
  46. extern void (*f__putn)(); /* for formatted output */
  47. extern void x_putc();
  48. extern long f__inode();
  49. extern VOID sig_die();
  50. extern int (*f__donewrec)(), t_putc(), x_wSL();
  51. extern int c_sfe(), err__fl(), xrd_SL(), f__putbuf();
  52. #else
  53. #define Void void
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif
  57. extern int (*f__getn)(void); /* for formatted input */
  58. extern void (*f__putn)(int); /* for formatted output */
  59. extern void x_putc(int);
  60. extern long f__inode(char*,int*);
  61. extern void sig_die(char*,int);
  62. extern void f__fatal(int,char*);
  63. extern int t_runc(alist*);
  64. extern int f__nowreading(unit*), f__nowwriting(unit*);
  65. extern int fk_open(int,int,ftnint);
  66. extern int en_fio(void);
  67. extern void f_init(void);
  68. extern int (*f__donewrec)(void), t_putc(int), x_wSL(void);
  69. extern void b_char(char*,char*,ftnlen), g_char(char*,ftnlen,char*);
  70. extern int c_sfe(cilist*), z_rnew(void);
  71. extern int isatty(int);
  72. extern int err__fl(int,int,char*);
  73. extern int xrd_SL(void);
  74. extern int f__putbuf(int);
  75. #ifdef __cplusplus
  76. }
  77. #endif
  78. #endif
  79. extern int (*f__doend)(Void);
  80. extern FILE *f__cf; /*current file*/
  81. extern unit *f__curunit; /*current unit*/
  82. extern unit f__units[];
  83. #define err(f,m,s) {if(f) errno= m; else f__fatal(m,s); return(m);}
  84. #define errfl(f,m,s) return err__fl((int)f,m,s)
  85. /*Table sizes*/
  86. #define MXUNIT 100
  87. extern int f__recpos; /*position in current record*/
  88. extern int f__cursor; /* offset to move to */
  89. extern int f__hiwater; /* so TL doesn't confuse us */
  90. #define WRITE 1
  91. #define READ 2
  92. #define SEQ 3
  93. #define DIR 4
  94. #define FMT 5
  95. #define UNF 6
  96. #define EXT 7
  97. #define INT 8
  98. #define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)