Re: read() called twice for /proc files

Jonathan Lundell (jlundell@pobox.com)
Mon, 24 Sep 2001 19:16:36 -0700


At 6:34 PM -0700 2001-09-24, Tim Hockin wrote:
>Is there a general solution to the case of read() being called minimum
>twice for a file in /proc? I have a small file in /proc, whose data takes
>a fair time to generate. My read() handler gets called once for the data,
>and once so I can return 0 to terminate read().

I'm guessing you mean that the user is calling read once (and not a
second time to get the 0/eof return), and that proc_file_read() is
calling your read_proc twice. If that's the case, you can just set
the eof flag on the first call (on which you return the data), and
you won't be called again unless the user reads again.

And of course, as David Miller suggests, you can check the offset
first, before generating data.

-- 
/Jonathan Lundell.
-
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/