Unix Device File Emulation

Martin Blume mblume at freesurf.ch
Wed Apr 23 12:27:33 EDT 2008


"blaine" schrieb
> 
> # Fake Nokia Screen Emulator
> import sys, os
> 
> class nokia_fkscrn:
>   def __init__(self, file):
>     if not os.path.exists(file):
>       os.mkfifo(file)
>     self.fifodev = open(file, 'r')
>   def read(self):
>     while 1:
>       r = self.fifodev.readline()
>       print r
> 
> nokia = nokia_fkscrn('dev.file')
> nokia.read()
> 
> This works at first, but when I write to the 'dev.file' 
> for the first time, the text is displayed as intended, 
> but then the program just keeps spitting out blank lines.  
> I can continue to write to the file 
> (using echo 'test\n' > dev.file) 
> and this shows up in my output, but amist a giant mass 
> of scrolling blank lines.  This also causes my CPU
> usage to shoot up to 100%.
> 
> Any ideas? This is OS X 10.4
>

while 1:
 r = self.fifodev.readline()
 if r: print r

According to my docs, readline() returns an empty string
at the end of the file. 
Also, you might want to sleep() between reads a little bit.


IMHO. HTH.
Martin






More information about the Python-list mailing list