home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixtools / unixlib / clib / h / stdio < prev    next >
Encoding:
Text File  |  1992-07-21  |  3.9 KB  |  176 lines

  1. /* stdio.h (c) Copyright 1990 H.Rogers */
  2.  
  3. #ifndef __STDIO_H
  4. #define __STDIO_H
  5.  
  6. #ifndef __STDARG_H
  7. #include <stdarg.h>
  8. #endif
  9.  
  10. #ifndef __SYS_TYPES_H
  11. #include "sys/types.h"
  12. #endif
  13.  
  14.  
  15. #define OPEN_MAX    16
  16.  
  17. #define FOPEN_MAX    16
  18. #define FILENAME_MAX    252
  19.  
  20. #define BUFSIZ        1024
  21. #define EOF        (-1)
  22.  
  23. #define SEEK_SET    0
  24. #define SEEK_CUR    1
  25. #define SEEK_END    2
  26.  
  27. typedef struct __iobuf
  28.   {
  29.   unsigned char *i_ptr;
  30.   unsigned char *i_base;
  31.   int        i_cnt;
  32.   unsigned char *o_ptr;
  33.   unsigned char *o_base;
  34.   int        o_cnt;
  35.   int        flag;
  36.   int        fd;
  37.   fpos_t    pos;
  38.   int        bufsiz;
  39.   } FILE;
  40.  
  41. #define FILE FILE
  42.  
  43. extern    FILE        __iob[FOPEN_MAX];
  44.  
  45. #define stdin        (&__iob[0])
  46. #define stdout        (&__iob[1])
  47. #define stderr        (&__iob[2])
  48.  
  49. #define _IOOMASK    0003
  50.  
  51. #define _IOREAD     0001
  52. #define _IOWRITE    0002
  53. #define _IOAPPEND    0004
  54.  
  55. #define _IOBF        0070
  56.  
  57. #define _IONBF        0010
  58. #define _IOLBF        0020
  59. #define _IOFBF        0040
  60.  
  61. #define _IOEOF        0100
  62. #define _IOERR        0200
  63.  
  64. #define _IOTTY        0400
  65.  
  66. #define feof(f)     ((f)->flag & _IOEOF)
  67. #define ferror(f)    ((f)->flag & _IOERR)
  68. #define fileno(f)    ((f)->fd)
  69. #define fisatty(f)    ((f)->flag & _IOTTY)
  70. #define fisopen(f)    ((f)->flag & (_IOREAD|_IOWRITE))
  71.  
  72. #define clearerr(f)    (void)((f)->flag &= (~(_IOEOF|_IOERR)))
  73.  
  74. extern    int    (feof)(FILE *);
  75. extern    int    (ferror)(FILE *);
  76. extern    int    (fileno)(FILE *);
  77. extern    int    (fisatty)(FILE *);
  78. extern    int    (fisopen)(FILE *);
  79.  
  80. extern    void    (clearerr)(FILE *);
  81.  
  82. extern    void    perror(const char *);
  83.  
  84. extern    void    __stdioinit(void);    /* initialise stdin,stdout & stderr */
  85. extern    void    __stdioexit(void);    /* close streams & delete tmpfile() */
  86.  
  87. extern    int    __filbuf(FILE *);    /* fill buffer */
  88. extern    int    __flsbuf(int,FILE *);    /* flush buffer */
  89.  
  90. extern    char    *__null;        /* null pointer output */
  91.  
  92. extern    FILE    *fopen(const char *,const char *);
  93. extern    FILE    *freopen(const char *,const char *,FILE *);
  94. extern    FILE    *fdopen(int,const char *);
  95. extern    int    fclose(FILE *);
  96. extern    int    fflush(FILE *);
  97.  
  98. extern    int    __fread(FILE *,char *,int);
  99. extern    int    __fwrite(FILE *,char *,int);
  100.  
  101. extern    size_t    fread(void *,size_t,size_t,FILE *);
  102. extern    size_t    fwrite(const void *,size_t,size_t,FILE *);
  103.  
  104. extern    void    setbuf(FILE *,char *);
  105. extern    int    setvbuf(FILE *,char *,int,size_t);
  106.  
  107. extern    int    ungetc(int,FILE *);
  108.  
  109. extern    int    fgetpos(FILE *,fpos_t *);
  110. extern    int    fsetpos(FILE *,const fpos_t *);
  111.  
  112. extern    int    fseek(FILE *,long,int);
  113. extern    long    ftell(FILE *);
  114. extern    void    rewind(FILE *);
  115.  
  116. #define getc(f) \
  117.     ((--((f)->i_cnt) >= 0 ? *((f)->i_ptr)++ : __filbuf(f)))
  118. #define getchar()    getc(stdin)
  119.  
  120. extern    int    fgetc(FILE *);
  121. extern    int    (getc)(FILE *);
  122. extern    int    (getchar)(void);
  123. extern    int    getw(FILE *);
  124.  
  125. #define putc(c,f) \
  126.     ((--((f)->o_cnt) >= 0 ? (*((f)->o_ptr)++ = (c)) : __flsbuf(c,f)))
  127. #define putchar(c)    putc(c,stdout)
  128.  
  129. extern    int    fputc(int,FILE *);
  130. extern    int    (putc)(int,FILE *);
  131. extern    int    (putchar)(int);
  132. extern    int    putw(int,FILE *);
  133.  
  134. extern    char    *fgets(char *,int,FILE *);
  135. extern    char    *gets(char *);
  136.  
  137. extern    int    fputs(const char *,FILE *);
  138. extern    int    puts(const char *);
  139.  
  140. /* formatted I/O */
  141.  
  142. extern    size_t    __printf(char *,char *,va_list);
  143. extern    size_t    __scanf(FILE *,char *,va_list,int *);
  144.  
  145. extern    char    *__pbuf;    /* buffer for printf */
  146. extern    char    *__sbuf;    /* buffer for scanf */
  147.  
  148. extern    int    vsprintf(char *,const char *,va_list);
  149. extern    int    vfprintf(FILE *,const char *,va_list);
  150. extern    int    vprintf(const char *,va_list);
  151. extern    int    sprintf(char *,const char *,...);
  152. extern    int    fprintf(FILE *,const char *,...);
  153. extern    int    printf(const char *,...);
  154.  
  155. extern    int    sscanf(const char *,const char *,...);
  156. extern    int    fscanf(FILE *,const char *,...);
  157. extern    int    scanf(const char *,...);
  158.  
  159. #define P_tmpdir    "/"
  160. #define L_tmpnam    12
  161. #define TMP_MAX     0x10000U
  162.  
  163. extern    int    remove(const char *);
  164. extern    int    rename(const char *,const char *);
  165. extern    FILE    *tmpfile(void);
  166. extern    char    *tmpnam(char *);
  167. extern    char    *tempnam(char *,char *);
  168. extern    char    *mktemp(char *);
  169. extern    int    mkstemp(char *);
  170.  
  171. extern    FILE        *__tmpf;
  172. extern    char        __tmpn[L_tmpnam + 1];
  173. extern    unsigned int    __tmpcnt;
  174.  
  175. #endif
  176.