Messages in this thread |  | | Date | Tue, 28 Mar 2006 17:27:59 +0100 | From | Paulo Marques <> | Subject | Re: procfs question |
| |
yenganti pradeep wrote: > Hi,
Hi,
> I've created a new entry under /proc, to make tests. > > I've defined an static int var=0; > > Then I link my proc entry read function to a function > that only performs this: > > int length; > length=sprintf(page,"Value %d",var++); > > return length; > > But when I cat/vi the file continuosly I get: > > Value 0 > Value 3 > Value 6 > > etc... > > Why is this three numbers increment?
'cat' will issue a read for more bytes than your function provides. As this read isn't fully satisfied it will issue another read for the rest at a different offset, etc. So your function gets called several times.
Just do a 'strace' on 'cat' to see what 'cat' really does. For more details search for the thread 'procfs uglyness caused by "cat"'.
Your read function really shouldn't have side effects...
-- Paulo Marques - www.grupopie.com
Pointy-Haired Boss: I don't see anything that could stand in our way. Dilbert: Sanity? Reality? The laws of physics? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |