[Python] Read bloccanti su pipe.

Listemessaggi CoPlast listemessaggi a coplast.eu
Dom 24 Ago 2008 19:33:07 CEST


Ciao a tutti.

Se creo una named pipe (su linux)   mkfifo mio_path   e la apro   
mio_file = open("mio_path", "r")   il programma rimane in attesa che 
qualcuno invii qualcosa a quella pipe.
Ora se invio qualcosa ad esempio banalmente   echo 1 > mio_path   allora 
il programma supera l'istruzione open e va alle successive. Quì trova 
dei cicli while contenenti delle  mio_file.read()  ed ora continua 
all'infinito dentro la while anche se la pipe è vuota. Quando c'è 
qualcosa nella pipe la legge e svuota la pipe ma poi continua nel loop 
infinito restituendo niente dalle read.
Se non ho capito male in C sono le read ad essere bloccanti (a meno di 
specifare diversamente nella open del C). La cosa mi interesserebbe (le 
read bloccanti intendo), esiste un modo per farlo con python?


Matteo.


Maggiori informazioni sulla lista Python