On Sat, 2014-12-13 at 13:01 -0500, John de la Garza wrote: > On Tue, Dec 09, 2014 at 10:26:03AM +0100, Paul Bolle wrote: > > On Mon, 2014-12-08 at 21:20 -0500, John de la Garza wrote: > > > I'm looking at samples/kobject/kobject-example.c > > > > > > at line 39 foo is read: > > > > > > sscanf(buf, "%du", &foo); > > > > > > foo is an int so why is it read using %du not %d? > > > > My reading of lib/vsprintf.c:vsscanf() is that a "%du" format expects > > "buf" to contain an integer followed by a literal 'u' char. Is that your > > reading too? > > > After reading the code and the man page for vsscanf, it seems like > it is not expecting the 'u', but rather ignores it. The manpage _probably_ describes intended behavior. But I'm not sure whether the kernel's vsscanf() tries to emulate it all that faithfully. (And, besides, that manpage would gain quite a bit with a few examples.) Anyhow, the net effect of "%du" appears to be to ignore any non digit trailing input. So I think you're reading the code correctly. > vsscanf is a bit complicated for me, so I may be missing something. I wouldn't have bothered replying if I had not noticed https://lkml.org/lkml/2014/12/17/386 . You might like to have a look at that patch. My primary observation is that its commit explanation is not very helpful. (That's why I CC-ed Ratislav.) Paul Bolle _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies