need info: %r in printf
Mark Horton
mark at cbosgd.UUCP
Sat Oct 15 05:17:52 AEST 1983
I think %r was in UNIX/32V (undocumented) and possibly V7.
It went away in 4BSD and was never in System III or its
precursors.
Calling _doprnt is very unportable. In particular, System III
and V don't have _doprnt, they have _print, with slightly
different conventions. There are also slight differences
between V7 and 32V.
The next release of System V has something called vsprintf:
vsprintf(string, format, ap)
char *string, *fmt;
va_list ap;
(see varargs(3)). This is like sprintf, except that ap is
something that can be passed through more than one layer of
function (e.g. it's normally a pointer to the first argument
in the list.) Assuming you consider System V "standard",
this will be the first documented way to do this in "standard UNIX".
In general, this is useful when you want to provide a printf-style
routine for other routines to use. It's great for debugging and
error messages. It's also useful when you want to provide a
subroutine package - e.g. printw in curses.
More information about the Comp.lang.c
mailing list