I was looking through /usr/include/stdio.h
and happened to come across the following piece of code.
/* Standard streams. */
extern struct _IO_FILE *stdin; /* Standard input stream. */
extern struct _IO_FILE *stdout; /* Standard output stream. */
extern struct _IO_FILE *stderr; /* Standard error output stream. */
/* C89/C99 say they're macros. Make them happy. */
#define stdin stdin
#define stdout stdout
#define stderr stderr
My question is, where is this stucture struct _IO_FILE declared, i want to see the layout. and also the code mentions
#define stdin stdin
How is this supposed to work?