Joern, On 03/08/2010 12:38 PM, Joern Heissler wrote: > The fscanf manpage contains this: > > n Nothing is expected; instead, the number of characters consumed thus far from the input is > stored through the next pointer, which must be a pointer to int. This is not a conversion, although it > can be suppressed with the * assignment-suppression character. The C standard says: > "Execution of a %n directive does not increment the assignment count returned at the completion of > execution" but the Corrigendum seems to contradict this. Probably it is wise not to make any > assumptions on the effect of %n conversions on the return value. > > > I wondered about this and looked at c89, c99+tc3, c1x, k&r2, posix manpages; all say that %n does *not* > increase the counter. %*n causes undefined behaviour according to c99+tc3. > I wasn't able to find proof that any Corrigendum says otherwise. > Therefore I think it's safe to say that you can indeed make the assumption that %n does not affect the > return value. Long after the fact, I've applied this patch. Cheers, Michael > Suggested patch: > --- scanf.3.orig 2010-03-08 12:21:59.000000000 +0100 > +++ scanf.3 2010-03-08 12:29:59.000000000 +0100 > @@ -506,18 +506,15 @@ > .IR int . > This is > .I not > -a conversion, although it can be suppressed with the > -.B * > -assignment-suppression character. > -The C standard says: "Execution of a > -.B %n > -directive does not increment > -the assignment count returned at the completion of execution" > -but the Corrigendum seems to contradict this. > -Probably it is wise > -not to make any assumptions on the effect of > -.B %n > -conversions on the return value. > +a conversion and does > +.I not > +increase the count returned by the function. > +The assignment can be suppressed with the > +.B * > +assignment-suppression character, but the effect on the > +return value is undefined. Therefore > +.B %*n > +conversions should not be used. > .SH "RETURN VALUE" > These functions return the number of input items > successfully matched and assigned, > > > Cheers, > Jörn Heissler > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html