cvs commit: src/include stdio.h src/lib/libc/stdio clrerr.c feof.c ferror.c fileno.c getc.c getchar.c local.h putc.c putchar.c xprintf.c

Poul-Henning Kamp phk at
Tue May 6 06:58:01 UTC 2008

In message <20080506053504.GA66588 at zim.MIT.EDU>, David Schultz writes:

>I believe FILE is required to be a complete type, but it need not
>expose any usable fields to applications. For instance,

Well, we may have to dig in the history a bit.

BSD has a different stdio implementation than AT&T used, in CFRONT it
was known as "BSD stdio".

If you look at how some of the printf* family functions are implemented
in libc, you will find liberal use of creating FILE's that point
to memory buffers etc.

The question in my mind is, if this extension ability, and its
consequent dependence on the internals of FILE, have been flaunted
at USENIX ATC at some point, and thus must be considered a published

Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

More information about the cvs-src mailing list