variable # of args portability?
hansen at mips.UUCP
hansen at mips.UUCP
Wed Jul 9 13:15:57 AEST 1986
> I want to be able to write a function that will take an unknown number
> of arguments and then call another such function with these arguments,
> namely something like printf() that calls _doprnt() without processing
> its arguments at all. I know there is no way to write this code portably,
> but is it reasonable to assume that I will be able to do it at all in
> most common implementations of C? Also, how safe is it to assume that there
> will be something like _doprnt() available? I know it's not good to depend on
> things like this, but I don't want to have to write my own printf()...
>
> Wayne
System V defines functions named vprintf, vfprintf, and vsprintf,
that combined with the macros defined in varargs.h, provide a
reasonably portable interface to _doprnt. The first two
functions are trivial to implement on a machine that has _doprnt,
the third is a little tricker, since you must trick the stdio package
into outputting into a string, and the necessary flag setting
is rather unportable (which is why the v...printf functions should
be defined in the system-provided library).
Using varargs.h goes a long way toward making such functions portable.
--
Craig Hansen | "Evahthun' tastes
MIPS Computer Systems | bettah when it
...decwrl!mips!hansen | sits on a RISC"
More information about the Comp.lang.c
mailing list