[Coco] glork!!!
Willard Goosey
goosey at virgo.sdc.org
Tue Dec 18 05:22:35 EST 2007
>Date: Mon, 17 Dec 2007 11:39:01 -0500
>From: Gene Heskett <gene.heskett at verizon.net>
>Its always worked for me.
For me, too, until I started carefully checking its return value. ;-)
>>Specifically, ..printf("foo bar\n") returned -79xxx and
>>... printf("%s\n","foo bar") returns 31744!
>>
>You are leaving out the output format specifier in the first case
>Willard. Go look up printf in any C reference book.
K&R, page 6: ...printf("hello world\n");
Not that K&R ever actually specify printf's return value... Like many
things in K&R, it's just sort of assumed... The man page for
printf(3) on an AT&T K&R compiler says it returns the number of
characters printed.
>Also, the "foo bar" should point at the defined variables. Either
>that or bit rot has gotten to your copy...
Yeah, yeah, the compiler had to generate a thunk. That's what
compilers are for, and if it couldn't handle, the format-string
wouldn't work either.
>printf("list-of-format-strings\r", nameofvar, nameofvar, etc);
More formally: int printf(control [, arg1,] ...)
char *control;
(Again, from the AT&T man page.)
>That's off the top of my head, but that's how I remember it, having
>written a bunch of stuff in C.
Overly restrictive, but essentially correct.
You want scary? Read the C99 spec for the %n specifier! That is NOT
printf's job!
Willard
--
Willard Goosey goosey at sdc.org
Socorro, New Mexico, USA
"I've never been to Contempt! Isn't that somewhere in New Mexico?"
--- Yacko
More information about the Coco
mailing list