Created
July 14, 2016 17:48
-
-
Save philippkeller/3921705e7b5d0ef5d394501496d146fe to your computer and use it in GitHub Desktop.
stdio.h on OS X
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 (see WARNING) */ | |
} FILE; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment