Re: kobject sample code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux