Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Dec 2005 12:18:11 +0100
From:      "Poul-Henning Kamp" <phk@phk.freebsd.dk>
To:        Luigi Rizzo <rizzo@icir.org>
Cc:        current@freebsd.org, Brian Candler <B.Candler@pobox.com>
Subject:   Re: About extensible prinf(3), a slightly long X-mas card 
Message-ID:  <24068.1134818291@critter.freebsd.dk>
In-Reply-To: Your message of "Sat, 17 Dec 2005 03:05:13 PST." <20051217030513.A82342@xorpc.icir.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <20051217030513.A82342@xorpc.icir.org>, Luigi Rizzo writes:

>> >Perhaps the semantics of this extended printf() are so far divorced from the
>> >standard one that you might as well just call it something else? e.g.
>> >
>> >    ext_printf()
>> 
>> the reasons not to are
>> 
>> 	ext_printf()
>> 	ext_fprintf()
>> 	ext_sprintf()
>> 	ext_snprintf()
>> 	ext_asprintf()
>> 	ext_vprintf()
>> 	ext_vfprintf()
>> 	ext_vsfprintf()
>> 	ext_vasfprintf()
>> 
>> There is little or no point in replicating all of this stuff.
>
>phk, i don't understand your objection.
>aren't (or shouldn't) all of these written as wrappers
>for a generic ext_*printf() ?

My objection is that we would need an entirely new familiy
of wrappers such as the above.

>I love the idea of extensible printf, and it's way way useful
>when handling ip addresses, hexdump and whatnot; but
>portability is an issue, and nobody would use it if
>the source code doesn't port to other systems.

Everything under the sun has a portability cost these days because
the portable subset of the UNIX API is still too small to support
sensible programming.

My favourite example is this:  After 30 years, wouldn't you
have expected that UNIX would sport a:

	open_tcp_connection(const char *host, const char *proto)

call ?

Try to compare the primitives modern languages offer to what
you can portably use on UNIX and see the disparity :-(


The sorry situation is that after Dennis and Ken let go, nobody
has been able to work on th UNIX API in a coherent fashion, and
instead various extensions have been slapped on haphazardly where
people could fit them in.

For an extensible printf, I see little reason to add yet another
API, the GLIBC people got here first, the API is not optimal, but
it does work.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?24068.1134818291>