how to calculate the size of sys.stdin?

Grant Edwards grante at visi.com
Thu Apr 12 12:01:33 EDT 2001


In article <m31yqysf6c.fsf at atrus.jesus.cam.ac.uk>, Michael Hudson wrote:
>grante at visi.com (Grant Edwards) writes:
>
>> In article <mailman.987030856.375.python-list at python.org>, Robin Thomas wrote:
>> 
>> >sys.stdin is more like a pipe, and not a regular file. You
>> >can't ask a pipe how many bytes it contains before you read
>> >from it.
>> 
>> Actually, you can.  
>> 
>> At least on some Unix systems, the FIONREAD ioctl() call will
>> tell you how many bytes there are in a pipe waiting to be read.
>> IIRC, it also works on some tty devices as well. Probably not
>> very portable, and somebody could have shoved more bytes into
>> the other end after the ioctl() and before the read(), so you
>> could get more that you expect, but you shouldn't get less.
>
>That's interesting for a pet project of mine.  How on earth does one
>go about learning things like that?  

I learned it by reading Usenet and looking at device driver
source code.

>Is this sort of stuff in Stevens' APUE?

Might be.  I don't have a copy at hand.

-- 
Grant Edwards                   grante             Yow!  He is the
                                  at               MELBA-BEING... the ANGEL
                               visi.com            CAKE... XEROX him... XEROX
                                                   him --



More information about the Python-list mailing list