All pastes #99562 Raw Edit

kst

public c v1 · immutable
#99562 ·published 2006-07-25 12:49 UTC
rendered paste body
typedef struct __sFILE {        unsigned char *_p;      /* current position in (some) buffer */        int     _r;             /* read space left for getc() */        int     _w;             /* write space left for putc() */        short   _flags;         /* flags, below; this FILE is free if 0 */        short   _file;          /* fileno, if Unix descriptor, else -1 */        struct  __sbuf _bf;     /* the buffer (at least 1 byte, if !NULL) */        int     _lbfsize;       /* 0 or -_bf._size, for inline putc */        /* operations */        void    *_cookie;       /* cookie passed to io functions */        int     (*_close)(void *);        int     (*_read)(void *, char *, int);        fpos_t  (*_seek)(void *, fpos_t, int);        int     (*_write)(void *, const char *, int);        /* separate buffer for long sequences of ungetc() */        struct  __sbuf _ub;     /* ungetc buffer */        struct __sFILEX *_extra; /* additions to FILE to not break ABI */        int     _ur;            /* saved _r when _r is counting ungetc data */        /* tricks to meet minimum requirements even when malloc() fails */        unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */        unsigned char _nbuf[1]; /* guarantee a getc() buffer */        /* separate buffer for fgetln() when line crosses buffer boundary */        struct  __sbuf _lb;     /* buffer for fgetln() */        /* Unix stdio files get aligned to block boundaries on fseek() */        int     _blksize;       /* stat.st_blksize (may be != _bf._size) */        fpos_t  _offset;        /* current lseek offset */} FILE;