Subject: Re: How to translate this stdio code to netbsd?
To: None <chammer@hermes.hrz.uni-bielefeld.de>
From: der Mouse <mouse@Collatz.McRCIM.McGill.EDU>
List: current-users
Date: 03/10/1996 08:05:54
(By the way, something's wrong with some mailer.  The message I
received had in its headers

> Received: from phyhammer by pain.lcs.mit.edu (8.7.4/8.6.12) with SMTP id HAA00107 for <current-users@NetBSD.ORG>; Sat, 9 Mar 1996 07:57:31 -0500 (EST)
> Received: (from chammer@localhost) by phyhammer (8.6.12/8.6.12) id OAA05007 for current-users@NetBSD.ORG; Fri, 8 Mar 1996 14:54:19 GMT
> From: Carsten Hammer <chammer@phyhammer>
> Message-Id: <199603081454.OAA05007@phyhammer>

Not putting a FQDN after the @ is rather badly broken....)

> perhaps some kind soul i willing to enlighten me how to translate
> this code to netbsd style:

> FILE *f;
> charr *base, *ptr;
> int cnt;
> 
> #ifdef __linux__
>     base = (char *)f->_IO_read_base;
>     ptr = (char *)f->_IO_read_ptr;
>     cnt = ptr - base;
> #else
>     base = (char *)f->_base;
>     ptr = (char *)f->_ptr;
>     cnt = f->_cnt;
> #endif

This is a gross abuse of the interface.  There is no guarantee that any
particular stdio implementation even _has_ structure elements allowing
the equivalent of the above, and indeed, ideally the FILE type would be
completely opaque to client code.

> what is the pseudonym of _IOEOF, _IOMYBU and _IOERR on netbsd?

Oh, even worse.  This is more looking-under-the-hood of stdio, and
again, there is no assurance that any particular implementation has any
analog of those.

> PS: it is maybe ridiculous to "translate" this to netbsd.

It is probably possible; NetBSD's stdio is designed in such a way that
you can look at its internals from client code, and based on a quick
skim it seems to have analogs of the above.  However, I strongly
recommend instead eliminating the code's dependence on being able to
look inside a FILE; it's only asking for future trouble as it is.  If
you really want to, go read /usr/include/stdio.h....

					der Mouse

			    mouse@collatz.mcrcim.mcgill.edu