home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / utils / graphic / viewers / general / msdos / ncsa / src / stdio.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-04-22  |  4.6 KB  |  174 lines

  1. /**
  2. *
  3. * This header file defines the information used by the standard I/O
  4. * package.
  5. *
  6. **/
  7. #define _BUFSIZ 512        /* standard buffer size */
  8. #define BUFSIZ 512        /* standard buffer size */
  9. #define _NFILE 20        /* maximum number of files */
  10.  
  11. struct _iobuf
  12. {
  13. unsigned char *_ptr;        /* current buffer pointer */
  14. int _rcnt;            /* current byte count for reading */
  15. int _wcnt;            /* current byte count for writing */
  16. unsigned char *_base;         /* base address of I/O buffer */
  17. int _size;            /* size of buffer */
  18. int _flag;            /* control flags */
  19. unsigned char _file;        /* file number */
  20. unsigned char _cbuff;        /* single char buffer */
  21. };
  22.  
  23. extern struct _iobuf _iob[_NFILE];
  24.  
  25. /**
  26. *
  27. * Definitions associated with _iobuf._flag
  28. *
  29. */
  30. #define _IOFBF 0        /* fully buffered (for setvbuf) */
  31. #define _IOREAD 1        /* read flag */
  32. #define _IOWRT 2        /* write flag */
  33. #define _IONBF 4        /* non-buffered flag */
  34. #define _IOMYBUF 8        /* private buffer flag */
  35. #define _IOEOF 16        /* end-of-file flag */
  36. #define _IOERR 32        /* error flag */
  37. #define _IOLBF 64        /* line-buffered flag */
  38. #define _IORW 128        /* read-write (update) flag */
  39. #define _IOAPP 0x4000        /* append flag */
  40. #define _IOXLAT 0x8000        /* translation flag */
  41.  
  42. #ifndef NULL
  43. #if SPTR
  44. #define NULL 0            /* null pointer value */
  45. #else
  46. #define NULL 0L
  47. #endif
  48. #endif
  49. #define FILE struct _iobuf    /* shorthand */
  50. #define EOF (-1)        /* end-of-file code */
  51.  
  52.  
  53. #define stdin (&_iob[0])    /* standard input file pointer */
  54. #define stdout (&_iob[1])    /* standard output file pointer */
  55. #define stderr (&_iob[2])    /* standard error file pointer */
  56. #define stdaux (&_iob[3])    /* standard auxiliary file pointer */
  57. #define stdprt (&_iob[4])    /* standard printer file pointer */
  58.  
  59.  
  60. #define getc(p) (--(p)->_rcnt>=0? *(p)->_ptr++:_filbf(p))
  61. #define getchar() getc(stdin)
  62. #define putc(c,p) (--(p)->_wcnt>=0? ((int)(*(p)->_ptr++=(c))):_flsbf((c),p))
  63. #define putchar(c) putc(c,stdout)
  64. #define feof(p) (((p)->_flag&_IOEOF)!=0)
  65. #define ferror(p) (((p)->_flag&_IOERR)!=0)
  66. #define fileno(p) (p)->_file
  67. #define rewind(fp) fseek(fp,0L,0)
  68. #define fflush(fp) _flsbf(-1,fp)
  69. #define clearerr(fp) clrerr(fp)
  70.  
  71. #ifndef NARGS
  72. extern void clrerr(FILE *);
  73. extern int cprintf(char *, );
  74. extern int cscanf(char *, );
  75. extern int fclose(FILE *);
  76. extern int fcloseall(void);
  77. extern FILE *fdopen(int, char *);
  78. extern int fgetc(FILE *);
  79. extern int fgetchar(void);
  80. extern char *fgets(char *, int, FILE *);
  81. extern int flushall(void);
  82. extern int fmode(FILE *, int);
  83. extern FILE *fopen(char *, char *);
  84. extern FILE *fopene(char *, char *, char *);
  85. extern int fprintf(FILE *, char *, );
  86. extern int fputc(int, FILE *);
  87. extern int fputchar(int);
  88. extern int fputs(char *, FILE *);
  89. extern int fread(char *, int, int, FILE *);
  90. extern FILE *freopen(char *, char *, FILE *);
  91. extern int fscanf(FILE*, char *, );
  92. extern int fseek(FILE *, long, int);
  93. extern long ftell(FILE *);
  94. extern int fwrite(char *, int, int, FILE *);
  95. extern char *gets(char *);
  96. extern int printf(char *, );
  97. extern int puts(char *);
  98. extern scanf(char *, );
  99. extern int setbuf(FILE *, char *);
  100. extern int setnbf(FILE *);
  101. extern int setvbuf(FILE*, char *, int, int);
  102. extern int sprintf(char *, char *, );
  103. extern sscanf(char *, char *, );
  104. extern int ungetc(int, FILE *);
  105. extern int _filbf(FILE *);
  106. extern int _flsbf(int, FILE *);
  107.  
  108. #else
  109. extern void clrerr();
  110. extern int cprintf();
  111. extern int cscanf();
  112. extern int fclose();
  113. extern int fcloseall();
  114. extern FILE *fdopen();
  115. extern int fgetc();
  116. extern int fgetchar();
  117. extern char *fgets();
  118. extern int flushall();
  119. extern int fmode();
  120. extern FILE *fopen();
  121. extern FILE *fopene();
  122. extern int fprintf();
  123. extern int fputc();
  124. extern int fputchar();
  125. extern int fputs();
  126. extern int fread();
  127. extern FILE *freopen();
  128. extern int fscanf();
  129. extern int fseek();
  130. extern long ftell();
  131. extern int fwrite();
  132. extern char *gets();
  133. extern int printf();
  134. extern int puts();
  135. extern scanf();
  136. extern int setbuf();
  137. extern int setnbf();
  138. extern int setvbuf();
  139. extern int sprintf();
  140. extern sscanf();
  141. extern int ungetc();
  142. extern int _filbf();
  143. extern int _flsbf();
  144. #endif
  145.  
  146. /**
  147. *
  148. * Miscellaneous I/O services
  149. *
  150. */
  151. #ifndef NARGS
  152. extern int access(char *, int);
  153. extern int chdir(char *);
  154. extern int chmod(char *, int);
  155. extern char *getcwd(char *, int);
  156. extern int mkdir(char *);
  157. extern int perror(char *);
  158. extern int rename(char *, char *);
  159. extern int rmdir(char *);
  160. extern char *tmpnam(char *);
  161. #else
  162. extern int access();
  163. extern int chdir();
  164. extern int chmod();
  165. extern char *getcwd();
  166. extern int mkdir();
  167. extern int perror();
  168. extern int rename();
  169. extern int rmdir();
  170. extern char *tmpnam();
  171. #endif
  172.  
  173.  
  174.