stdio.h
typedef struct __iobuf FILE;
struct __iobuf { unsigned char *_ptr; /* next character position */ int _cnt; /* number of characters left */ struct __stream_link *_link; /* location of associated struct */ unsigned _flag; /* mode of file access */ int _handle; /* file handle */ unsigned _bufsize; /* size of buffer */ unsigned short _ungotten; /* used by ungetc and ungetwc */ };
typedef struct __stream_link { struct __stream_link * next; struct __iobuf * stream; unsigned char * _base; /* location of buffer */ int _orientation; /* wide/byte/not oriented */ int _extflags; /* extended flags */ unsigned char _tmpfchar; /* tmpfile number */ unsigned char _filler[sizeof(int)-1];/* explicit padding */ struct __pipe_info pipeInfo; /* pipe-related fields */ } __stream_link;
struct __pipe_info { int isPipe; /* non-zero if it's a pipe */ int pid; /* PID of spawned process */ };