[Python-de] fifo mit readline() auslesen

Christian Helmbold c.helmbold at gmx.de
Mit Feb 2 21:38:48 CET 2005


> Fuer solche "low-level" IO-Dinge ist ueblicherweise das os-modul besser 
> geeignet - versuch doch mal, deinen Code mit os.read usw. zu gestalten.

Damit kriege ich das nicht hin. Die einzige Funktion zum Lesen im Modul os
ist read() und die ist laut meinem schlauen Buch "Linux - Unix
Systemprogrammierung" nicht blockierend. 

Mein kleines Beispielprogramm blockiert bis das erste mal etwas in die Fifo
"annahme" geschrieben wird und dreht danach durch. Das liegt daran, dass
open() und nicht read() blockiert. 

import os
annahme = os.open("annahme", os.O_RDONLY)
while 1:
  print os.read(annahme, 1)

In C habe ich mal etwas Vergleichbares mit fgets() geschrieben. readline()
übernimmt in Python die Funktion von fgets(), aber fgets() blockiert.

Gibt es noch Ideen? Das muss doch irgendwie gehen!

Danke
Christian

-- 
GMX im TV ... Die Gedanken sind frei ... Schon gesehen?
Jetzt Spot online ansehen: http://www.gmx.net/de/go/tv-spot