Annotation of coherent/f/usr/include/stdio.h, revision 1.1.1.1

1.1       root        1: /* (-lgl
                      2:  *     COHERENT Version 4.0.2
                      3:  *     Copyright (c) 1982, 1993 by Mark Williams Company.
                      4:  *     All rights reserved. May not be copied without permission.
                      5:  -lgl) */
                      6: /*
                      7:  * stdio.h
                      8:  * COHERENT Standard Input/Output library header.
                      9:  * ANSI C Standard, Section 4.9.
                     10:  */
                     11: 
                     12: #ifndef        __STDIO_H__
                     13: #define        __STDIO_H__
                     14: 
                     15: #include <common/feature.h>
                     16: #include <common/ccompat.h>
                     17: #include <common/__off.h>
                     18: #include <common/__valist.h>
                     19: #include <common/_size.h>
                     20: #include <common/_null.h>
                     21: #include <common/whence.h>
                     22: 
                     23: /* Macros. */
                     24: #define        BUFSIZ          512             /* default buffer size  */
                     25: #define        EOF             (-1)            /* end of file          */
                     26: #define        _EOFCHAR        26              /* ASCII EOF character  */
                     27: #define        FILENAME_MAX    64              /* max filename length  */
                     28: #define        FOPEN_MAX       _NFILE          /* max # of open files  */
                     29: #define        _NFILE          60              /* number of FILEs      */
                     30: #define        _NSTDFILE       3               /* number of predefined FILEs   */
                     31: #define        L_tmpnam        64              /* tmpnam length        */
                     32: #define        P_tmpdir        "/tmp"          /* default temporary directory */
                     33: #define        TMP_MAX         91              /* number of tmpnams    */
                     34: 
                     35: /* Types. */
                     36: typedef long           fpos_t;         /* file position type   */
                     37: 
                     38: /*
                     39:  * The order the first 5 FILE members corresponds to the order in iBCS2,
                     40:  * to allow a degree of binary compatability.
                     41:  */
                     42: typedef struct FILE {
                     43:        int             _cc;            /* character count      */
                     44:        unsigned char   *_cp;           /* current character    */
                     45:        struct _FILE2   *_f2p;          /* more info            */
                     46:        char            _ff1;           /* flags                */
                     47:        char            _fd;            /* file descriptor      */
                     48:        char            _ff2;           /* more flags; see below */
                     49:        char            _mode;          /* mode                 */
                     50: }      FILE;
                     51: /* These additional members are not in struct FILE for compatability reasons. */
                     52: typedef        struct  _FILE2 {
                     53:        int             (*_gt)();       /* getc function        */
                     54:        int             (*_pt)();       /* putc function        */
                     55:        unsigned char   *_bp;           /* start of buffer      */
                     56:        unsigned char   *_dp;           /* start of data        */
                     57:        unsigned char   *_ep;           /* end of buffer        */
                     58:        char            *_nm;           /* temp file name       */
                     59:        int             _uc;            /* ungot char           */
                     60: }      _FILE2;
                     61: 
                     62: /* iBCS2 compatability. */
                     63: #define        _cnt    _cc
                     64: #define        _ptr    _cp
                     65: #define        _base   _f2p
                     66: #define        _flag   _ff1
                     67: #define        _file   _fd
                     68: 
                     69: /*
                     70:  * Standard FILEs. Technically, these definitions violate the user name-space,
                     71:  * but these names are required for iBCS2.
                     72:  */
                     73: extern FILE    _iob[_NSTDFILE];
                     74: extern FILE    *_fp[_NFILE];
                     75: #define        stdin   (&_iob[0])
                     76: #define        stdout  (&_iob[1])
                     77: #define        stderr  (&_iob[2])
                     78: 
                     79: /* _IO[FLN]BF are used for setvbuf() type args. */
                     80: #define        _IOFBF          0x00            /* fully buffered       */
                     81: #define        _IONBF          0x04            /* unbuffered           */
                     82: #define        _IOLBF          0x40            /* line buffered        */
                     83: 
                     84: /* Flags in _ff1, cf. iBCS2. */
                     85: #define        _FEOF           0x10            /* end of file          */
                     86: #define        _FERR           0x20            /* error                */
                     87: 
                     88: /* Non-iBCS2 flags in _ff1. */
                     89: #define        _FRONLY         0x01            /* read only            */
                     90: #define        _FWONLY         0x02            /* write only           */
                     91: #define        _FRW            0x80            /* read and write       */
                     92: 
                     93: /* Flags in _ff2, not in iBCS2. */
                     94: #define        _FINUSE         0x01            /* in use               */
                     95: #define        _FAPPND         0x02            /* append               */
                     96: #define _FASCII                0x04            /* ASCII                */
                     97: #define        _FDONTC         0x08            /* do not close         */
                     98: #define        _FFREEB         0x10            /* free buffer when closed      */
                     99: #define        _FUNGOT         0x80            /* ungotten char present        */
                    100: 
                    101: /* Mode field values. */
                    102: #define        _MODE_FBUF      0x01            /* fully buffered       */
                    103: #define        _MODE_LBUF      0x02            /* line buffered        */
                    104: #define        _MODE_NBUF      0x04            /* unbuffered           */
                    105: #define        _MODE_STR       0x08            /* string               */
                    106: #define        _MODE_UNINIT    0x10            /* uninitialized        */
                    107: 
                    108: /* External declarations for non-conforming implementations. */
                    109: /* Standard functions. */
                    110: 
                    111: __EXTERN_C_BEGIN__
                    112: 
                    113: int            remove          __PROTO ((__CONST__ char * _filename));
                    114: int            rename          __PROTO ((__CONST__ char * _old,
                    115:                                          __CONST__ char * _new));
                    116: FILE         * tmpfile         __PROTO ((void));
                    117: char         * tmpnam          __PROTO ((char * _s));
                    118: int            fclose          __PROTO ((FILE * _stream));
                    119: int            fflush          __PROTO ((FILE * _stream));
                    120: FILE         * fopen           __PROTO ((__CONST__ char * _filename,
                    121:                                          __CONST__ char * _mode));
                    122: FILE         * freopen         __PROTO ((__CONST__ char * _filename,
                    123:                                          __CONST__ char * _mode,
                    124:                                          FILE * _stream));
                    125: void           setbuf          __PROTO ((FILE * _stream, char * _buf));
                    126: int            setvbuf         __PROTO ((FILE * _stream, char * _buf,
                    127:                                          int _mode, size_t _size));
                    128: int            fprintf         __PROTO ((FILE * _stream,
                    129:                                          __CONST__ char * _format, ...));
                    130: int            fscanf          __PROTO ((FILE * _stream,
                    131:                                          __CONST__ char * _format, ...));
                    132: int            printf          __PROTO ((__CONST__ char * _format, ...));
                    133: int            scanf           __PROTO ((__CONST__ char * _format, ...));
                    134: int            sprintf         __PROTO ((char * _s,
                    135:                                          __CONST__ char * _format, ...));
                    136: int            sscanf          __PROTO ((__CONST__ char * _s,
                    137:                                          __CONST__ char * _format, ...));
                    138: int            vfprintf        __PROTO ((FILE * _stream,
                    139:                                          __CONST__ char * _format,
                    140:                                          __va_list arg));
                    141: int            vprintf         __PROTO ((__CONST__ char * _format,
                    142:                                          __va_list arg));
                    143: int            vsprintf        __PROTO ((char * _s,
                    144:                                          __CONST__ char * _format,
                    145:                                          __va_list arg));
                    146: int            fgetc           __PROTO ((FILE * _stream));
                    147: char         * fgets           __PROTO ((char * _s, int _n, FILE * _stream));
                    148: int            fputc           __PROTO ((int _c, FILE * _stream));
                    149: int            fputs           __PROTO ((__CONST__ char * _s,
                    150:                                          FILE * _stream));
                    151: int            getc            __PROTO ((FILE * stream));
                    152: int            getchar         __PROTO ((void));
                    153: char         * gets            __PROTO ((char * _s));
                    154: int            putc            __PROTO ((int _c, FILE * _stream));
                    155: int            putchar         __PROTO ((int _c));
                    156: int            puts            __PROTO ((__CONST__ char * _s));
                    157: int            ungetc          __PROTO ((int _c, FILE * _stream));
                    158: size_t         fread           __PROTO ((__VOID__ * _ptr, size_t _size,
                    159:                                          size_t _nmemb, FILE * _stream));
                    160: size_t         fwrite          __PROTO ((__CONST__ __VOID__ * _ptr,
                    161:                                          size_t _size, size_t _nmemb,
                    162:                                          FILE * _stream));
                    163: int            fgetpos         __PROTO ((FILE * _stream, fpos_t * _pos));
                    164: int            fseek           __PROTO ((FILE * _stream, __off_t _offset,
                    165:                                          int whence));
                    166: int            fsetpos         __PROTO ((FILE * _stream,
                    167:                                          __CONST__ fpos_t * pos));
                    168: __off_t                ftell           __PROTO ((FILE * _stream));
                    169: void           rewind          __PROTO ((FILE * _stream));
                    170: void           clearerr        __PROTO ((void));
                    171: int            feof            __PROTO ((FILE * _stream));
                    172: int            ferror          __PROTO ((FILE * _stream));
                    173: void           perror          __PROTO ((__CONST__ char * _s));
                    174: 
                    175: #if    ! _STDC_SOURCE
                    176: 
                    177: FILE         * fdopen          __PROTO ((int _fildes,
                    178:                                          __CONST__ char * _type));
                    179: int            fileno          __PROTO ((FILE * _stream));
                    180: 
                    181: #if    ! _POSIX_SOURCE
                    182: 
                    183: FILE         * popen           __PROTO ((__CONST__ char * _command,
                    184:                                          __CONST__ char * _how));
                    185: 
                    186: #endif /* ! _POSIX_SOURCE */
                    187: #endif /* ! _STDC_SOURCE */
                    188: 
                    189: __EXTERN_C_END__
                    190: 
                    191: #if    0
                    192: /* Internal functions. */
                    193: extern void    _dassign();
                    194: extern int     _dscan  ();
                    195: extern char *  _dtefg  ();
                    196: extern void    _dtoa   ();
                    197: extern int     _fgetb  ();
                    198: extern int     _fgetc  ();
                    199: extern int     _fgete  ();
                    200: extern int     _fgetstr();
                    201: extern int     _fginit ();
                    202: extern int     _filbuf ();
                    203: extern void    _finish ();
                    204: extern int     _flsbuf ();
                    205: extern FILE *  _fopen  ();
                    206: extern int     _fpinit ();
                    207: extern int     _fpseek ();
                    208: extern int     _fputa  ();
                    209: extern int     _fputb  ();
                    210: extern int     _fputc  ();
                    211: extern int     _fpute  ();
                    212: extern int     _fputt  ();
                    213: extern int     _scanf  ();
                    214: extern FILE *  _stropen();
                    215: 
                    216: #endif /* not permitted in <stdio.h> */
                    217: 
                    218: /* Macros covering standard functions. */
                    219: #define        clearerr(fp)    ((fp)->_ff1 &= ~(_FERR|_FEOF))
                    220: #define        feof(fp)        ((fp)->_ff1 & _FEOF)
                    221: #define        ferror(fp)      ((fp)->_ff1 & _FERR)
                    222: #define        getc(fp)        (--(fp)->_cc<0 ? ++(fp)->_cc,(*(fp)->_f2p->_gt)((fp)) \
                    223:                                       : *(fp)->_cp++)
                    224: #define        getchar()       getc(stdin)
                    225: #define        putc(c,fp)      (--(fp)->_cc<0 ? ++(fp)->_cc,(*(fp)->_f2p->_pt)((c),(fp)) \
                    226:                                       : (*(fp)->_cp++=(c)))
                    227: #define        putchar(c)      putc((c), stdout)
                    228: 
                    229: /* Other macros, non-ANSI. */
                    230: #define        fileno(fp)      ((fp)->_fd)
                    231: 
                    232: #endif /* ! defined (__STDIO_H__) */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.