need info: %r in printf
Jerry Leichter
leichter at yale-com.UUCP
Wed Oct 12 23:45:42 AEST 1983
"%r" is "Remote Format" in DECUS C; I don't know whether any other C's support
it. Here is the relevant documentation from the DECUS C manual:
Remote Format. The next printf() argument is the format. Note that
this is not a subroutine. The current format is not processed
further. For example:
bug(args)
{
error("Error at %r",&args);
}
This routine might be called as follows:
bug("Error %d at %s\n",val,name);
Note: error() in DECUS C takes a printf-like argument, prints it to stderr,
then exits. The use of "&args" is a standard hack for passing on multiple
arguments.
There is no general equivalent for %r that I know of. You can probably get
some of the effect using the variable-number-of-arguments package. In some
cases, you'll have to re-organize the code, perhaps to do multiple sprintf's.
BTW, the example above is rather silly, since the "bug" call shown will produce
a message of the form "Error at Error xxx at yyy". However, the idea should
be clear...The only examples of %r I know of, as it happens, are in error
printers of this general form; in fact, I think error() itself may use %r
to call fprintf.
-- Jerry
decvax!yale-comix!leichter leichter at yale
More information about the Comp.lang.c
mailing list